Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
#1

vector - что не так? - C++

16.09.2010, 19:31. Просмотров 435. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
void delSame(vector<int> &first, vector<int> &second)
{
   vector<int>::iterator pf, ps;
   
   for(pf=first.begin(); pf!=first.end(); pf++)
      for(ps=second.begin(); ps!=second.end(); ps++)
            if(*pf==*ps) {first.erase(pf); second.erase(ps); break;}
}
функция получает два вектора и если два элемента одинаковые, удаляет их
1--> 2 3 5 5
2--> 2 2 5 5
в резулятате в одном векторе должно быть единственное значение 3, во втором - 2, а получается в первом 3 5, а во втором 2 5. что не так???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2010, 19:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос vector - что не так? (C++):

Нюансы синтаксиса: что означает запись vector<int*> a и vector <int>*a ? - C++
Часто встречается вот такая запись: vector&lt;int&gt; a; это понятно что. Массив объектов int А вот что такое vector&lt;int*&gt; a; ...

error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main - C++
//Vector.h #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;climits&gt; #include &lt;vector&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt;...

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>) - C++
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало интересно, как нужно изменить программу...

Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее? - C++
Вот код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(){ float a,c; char b; skip: ...

Что в коде ни так? while не работает так, как ожидаю - C++
Написанный код, как я думаю, должен выдавать цифры от 0 до 1000, столбиком. Но выдает начиная от 702 до 1000. Что ни так понимаю, где...

Что означает конструкция vector<int> v1{ 5 }; ? - C++
Доброй ночи) Что означает данная конструкция? (Гуглю не могу найти инфы) 1) vector&lt;int&gt; v1{ 5 }; 2) vector &lt;vector&lt;int&gt; &gt; v2(n +...

3
fasked
Эксперт С++
4963 / 2543 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
16.09.2010, 20:46 #2
Цитата Сообщение от Mayonez Посмотреть сообщение
в резулятате в одном векторе должно быть единственное значение 3, во втором - 2, а получается в первом 3 5, а во втором 2 5. что не так???
Как оно у Вас вообще работает, тут же чистой воды вылет за границы массива. Вы выполняете erase - элемент удаляется и итератор начинает указывать на следующий элемент после удаленного, а потом вы еще делаете инкремент итератора.
0
PointsEqual
ниначмуроФ
837 / 521 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
16.09.2010, 21:17 #3
Mayonez, перед break вставь

C++
1
2
pf = first.begin();
       ps = second.begin();
1
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
16.09.2010, 21:40  [ТС] #4
Ошибку понял, исправил, помогло, спасибо
0
16.09.2010, 21:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2010, 21:40
Привет! Вот еще темы с ответами:

Перевести vector во что-нибудь другое - C++
Здравствуйте помогите в следующем, есть программа написанная через vector,может кто помочь переписать ее во что-нибудь другое там в...

что показывает std::vector::max_size - C++
Returns the maximum number of elements that the vector can hold. но я щяс запускаю на ноутбуке с гигом оперативы for (int i=0; i&lt;1E9;...

Замена vector на что-то более компактное - C++
Привет, я тут месяца в вектор запихнул. И у меня вопрос, а можно эти строки как-то сократить? vector&lt;string&gt; monthNames; ...

Vector::swap и std::move - что эффективнее? - C++
Пусть имеется пустой вектор A и заполненный некими данными вектор B. Тогда какой из методов более эффективный: A.swap(B); A =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru