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

Оибка vector iterators incompatible ? - C++

Восстановить пароль Регистрация
 
Виталий123
-96 / 5 / 2
Регистрация: 29.11.2011
Сообщений: 84
09.11.2012, 03:45     Оибка vector iterators incompatible ? #1
привет всем ! вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class rgb2hsl
{
public:
    rgb2hsl(vector<int> r, vector<int> g
        , vector<int> b): R(r.begin(), r.end()), G(g.begin(), g.end())
    , B(b.begin(), b.end()) { }
    vector<int> minusGB()
    {   
        vector<int> result;
        transform(G.begin(), G.end(), B.begin(), back_inserter(result), minus<int>()); 
        return result;
    }
    vector<int> minusBR()
    {
        vector<int> result;
        transform(B.begin(), B.end(), R.begin(), back_inserter(result), minus<int>());
        return result;
    }
    vector<int> minusRG()
    {
        vector<int> result;
        transform(R.begin(), R.end(), G.begin(), back_inserter(result), minus<int>());
        return result;
    }
private:
    vector<int> R; vector<int> G; vector<int> B;
теперь когда добавляешь такую функцию
C++
1
2
3
4
5
6
7
8
void show()
{
     copy(minusRG().begin(), minusRG().end(), ostream_iterator<int>(cout, " "));
     cout<<endl;
     copy(minusBR().begin(), minusBR().end(), ostream_iterator<int>(cout, " "));
     cout<<endl;
     copy(minusGB().begin(), minusGB().end(), ostream_iterator<int>(cout, " "));
}
и когда ее вызываешь из клиентской области, вылетает такая ошибка
объясните что эта за ошибка и как ее исправить ?
Миниатюры
Оибка vector iterators incompatible ?  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2012, 03:45     Оибка vector iterators incompatible ?
Посмотрите здесь:

iterators & file C++
STL Iterators C++
[C++]Problems with iterators C++
vector(выскакивает ошибка "vector iterators incompatible") C++
VisualStudio C++ vector<vector<int> > push_back() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
09.11.2012, 03:57     Оибка vector iterators incompatible ? #2
скомпилируй и построй в release. Чёрт с ней, с ошибкой.
Виталий123
-96 / 5 / 2
Регистрация: 29.11.2011
Сообщений: 84
09.11.2012, 04:02  [ТС]     Оибка vector iterators incompatible ? #3
Kuzia domovenok, так не пойдет...да и все так ошибки не избежать...
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.11.2012, 04:19     Оибка vector iterators incompatible ? #4
Если так сделать, то будет работать:
C++
1
2
vector <int> temp = minusRG();
copy(temp.begin(), temp.end(), ostream_iterator<int>(cout, " "));
Добавлено через 2 минуты
В show() происходит работа с локальлным объектом, созданным в minusRG(), без предварительного сохранения его. Из-за этого, скорее всего, и ошибка.
Yandex
Объявления
09.11.2012, 04:19     Оибка vector iterators incompatible ?
Ответ Создать тему
Опции темы

Текущее время: 08:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru