Форум программистов, компьютерный форум CyberForum.ru

STL vector,list - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ключевые слова http://www.cyberforum.ru/cpp-beginners/thread42327.html
Написать программу, которая при вводе с клавиатуры буквы выводит ключевое слово языка Си, начинающееся с данной буквы. Например, при введении буквы "b" печатает "break". Результаты поместить на экран и в файл. Просто не знаю как сделать...
C++ Слова в обратном порядке (!не палиндром!) Задача состоит в следующем: определить символьный массив и ввести его с клавиатуры, затем подсчитать колличество символов 'e' (с этим проблем нет, но из программы уже не выкину) и выести слова в предложении в обратном порядке, типа мама мыла раму - раму мыла мама. Моя программа: #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> void main() {clrscr (); char str;... http://www.cyberforum.ru/cpp-beginners/thread42260.html
Двумерный массив C++
Создать двухмерный массив целых чисел. Испольуя массив указателей. записать в него адресса положительных елементов двухмерного масива. Пожалуста я на экзамене!!
Как возвращать массив структур? C++
Понимаю тема уже поднималась, но я всёравно не могу понять... Нужно возвратить массив из структур. Знаю что нужно делать через указатели... вот код: struct trgstr { char name; int x;
C++ Нужно вставить в прогу правильную формулу(С++) http://www.cyberforum.ru/cpp-beginners/thread42157.html
Привет всем)) Помогите пожалуйста вставить в прогу правильную формулу. Вот сама задача: Должны быть реализованные подпрограммы рисования дуги круга заданной: координатами центра, координатами стартовой точки и величиной угла вот сам код проги: #include <graphics.h> #include <stdio.h> #include <math.h> #include <conio.h>
C++ Выполнить строку Здравствуйте, подскажите наиболее простой вариант решения проблемы. Есть строка типа... подробнее

Показать сообщение отдельно
Ёрик
46 / 46 / 2
Регистрация: 07.01.2009
Сообщений: 298
29.06.2009, 17:04     STL vector,list
У меня 2 вопроса:
1) можете рассказать,как подробно работает reverse_iterator?Создал вектор,хочу его распечатать в обратном порядке следования индексов,а он мне вообще то ошибку выдает,что я вышел за пределы массива,то печатает не в обратном порядке.
В литературе как работает подробно reverse_iterator не нашел,везде просто написано,что такой итератор. Смотрел "STL для программистов на C++ (Аммерааль)","C++ Стандартная библиотека. Для профессионалов (Джосьютис)" и Страуструпа.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    std::vector<int> arr;
    arr.push_back(1);
    arr.push_back(2);
    arr.push_back(3);
    arr.push_back(4);
    arr.push_back(5);
    arr.push_back(6);
    arr.push_back(7);
    arr.push_back(8);
    arr.push_back(9);
    arr.push_back(10);
    arr.push_back(1);
 
    for(std::vector<int>::reverse_iterator i = arr.rbegin(); i!=arr.rend(); ++i)
        std::cout << arr[(*i)] << std::endl;
2) Вот класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class LongDigit: public std::list<int>
{
public:
    LongDigit()  {}
    ~LongDigit() {}
    friend std::istream& operator>>(std::istream & in, const LongDigit & dig);
    friend std::ostream& operator<<(std::ostream & out, const LongDigit & dig);
 
    // addition
    LongDigit operator+(const LongDigit & longDig);
 
 
private:
    std::list<int> list_;
};
И интерфейс:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
///////////////////////////////////////////////////////////////////////////////
LongDigit LongDigit::operator+(const LongDigit & longDig) 
{
    unsigned int position1 = longDig.list_.size(),position2 = list_.size();
    std::list<int>::reverse_iterator i;
 
    if(position1 > position2)
        for(i = longDig.list_.rbegin(); i < longDig.list_.rend(); ++i)
        {
                          // do smth
        }
    else {
        for(i = longDig.list_.rbegin(); i < longDig.list_.rend(); ++i)
        {
                         // do smth
        }
    }
    return temp;
 
}
Выдает ошибку:
Error 2 error C2664: 'std::_Revranit<_RanIt,_Base>::_Revranit(_RanIt)' : cannot convert parameter 1 from 'std::list<_Ty>::_Const_iterator<_Secure_validation>' to 'std::list<_Ty>::_Iterator<_Secure_validation>' c:\program files\microsoft visual studio 9.0\vc\include\xutility 2125

Не пойму почему... Иногда туплю и очевидные ошибки не нахожу.Сначала у меня был здесь вектор,потом поменял на list.Но все равно ошибка осталась,даже когда наследовал от list класс,все равно не помогло избежать ошибки.Подскажите.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru