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

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

Войти
Регистрация
Восстановить пароль
 
kravam
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,395
#1

STL значения итераторов нивелируются при передаче в функцию - C++

01.12.2012, 18:31. Просмотров 417. Ответов 3
Метки нет (Все метки)

Ну и зачем тогда весь этот хвалёный STL? Получается в функции значения векторов не изменить так, а только по индексу (в чём я теперь не уверен) либо работать со старыми добрыми массивами, которые не поведут... Каменный век какой-то.
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
27
28
29
#include <stdio.h>
#include <vector>
#include <windows.h>
 
using namespace std;
 
vector <int> vec;
bool f (vector<int>::iterator);
 
 
int main () {
 vector <int> vec;
 vec.push_back (3);  
 vector<int>::iterator it= vec.begin();
 
 //Тут выводится верное значение
 printf (" %d\n",((it+1)==vec.end()));
 
 //А тут лажа какая-то          
 f (it);
 
 getchar ();
 return 0;
}
/////////////////////////////////////////////////////////////////////
bool f (vector<int>::iterator it) {
 printf (" %d\n",((it+1)==vec.end()));
}
/////////////////////////////////////////////////////////////////////
спасибо, кто откликнется.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 18:31     STL значения итераторов нивелируются при передаче в функцию
Посмотрите здесь:

Ошибка при передаче двумерного массива в функцию C++
При передаче в функцию динамического массива, в массиве искажаются данные C++
C++ Мусор в элементах массива при передаче в функцию
C++ Ошибка при передаче в функцию
Неправильная длина строки при передаче в функцию C++
Не работает класс при передаче в функцию объекта C++
Теряется строка при передаче в функцию C++
Порча указателя при передаче в функцию C++
C++ Ошибки преобразования при передаче указателя на функцию
C++ Ошибка при передаче двумерного массива в функцию
C++ Ошибка при передаче параметра в функцию
Выдает ошибку при передаче массива в функцию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
01.12.2012, 18:50     STL значения итераторов нивелируются при передаче в функцию #2
Так у тебя два разных вектора объявлены...
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
01.12.2012, 18:59     STL значения итераторов нивелируются при передаче в функцию #3
kravam, как Вы себе представляете сравнение иттератора одного вектора с иттератором другого вектора? Вы ведь должны понимать, что в main используется тот vec, который в нем и объявлен. А в функции используется глобальный вектор.

EDIT: откуда столько сообщений? Oo Модераторы удалите, пожалуйста.
kravam
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,395
01.12.2012, 19:30  [ТС]     STL значения итераторов нивелируются при передаче в функцию #4
спасибо, во я опозорился-то
Yandex
Объявления
01.12.2012, 19:30     STL значения итераторов нивелируются при передаче в функцию
Ответ Создать тему
Опции темы

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