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

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

Войти
Регистрация
Восстановить пароль
 
 
Anion
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 16
#1

Итераторы и с чем их есть - C++

06.04.2013, 07:35. Просмотров 473. Ответов 17
Метки нет (Все метки)

Есть vector<SomeClass> someArray. В SomeClass есть поле someField. Не могу для итератора vector'а someArray присвоить значение полю someField. Вылетает с:
Ошибка сегментирования (сделан дамп памяти)
ЧЯДНТ?
C++
1
2
3
4
vector<Action> buf_A;
buf_A.reserve(variables.size());
for (vector<Action>::iterator a = buf_A.begin(); a != buf_A.end(); a++,)
    a->action_name = "Stroka bes kotoroi ia jit ne mogu!");
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2013, 07:35     Итераторы и с чем их есть
Посмотрите здесь:

Чем отличаются итераторы ::begin и ::cbegin? - C++
Чем отличаются итераторы ::begin и ::cbegin? Не пойму разницы, и с английским у меня не очень.

Контейнерный класс, с чем есть? - C++
Парни, всем привет! Вот сижу с домашкой... Нужно сделать контейнерный класс для двух классов (книга и библиотека) на основе массива......

Что такое указатель и с чем его есть - C++
Я уже не знаю что делать, но в книжке очень непонятно написано про указатели. Не могли бы вы объяснить что такое указатели и зачем они. И...

Двумерный динамический массив, что и с чем есть? - C++
собственно как сделать Двумерный динамический массив. и как можно проверить его работу?

std::map что такое и с чем это есть - C++
попытался найти док-ию по map, но так и не нащёл. есть у кого ли нормальная док-ия по Map?

в коде ниже есть ошибки. в чем они и как их устранить? - C++
structure brother { char name; into age; sister kin; }a; structure sister { char name; into age;

Чем лучше открывать .h .И есть ли какие то рекомендации и предостережения в работе с ними? - C++
Посоветуйте, чем лучше открывать .h .И есть ли какие то рекомендации и предостережения в работе с ними?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
06.04.2013, 07:45     Итераторы и с чем их есть #2
Ну падает, видимо, где-то в другом месте. Приведенный цикл вообще не будет выполнен ни разу, поскольку размер вектора buf_A - 0.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
06.04.2013, 07:49     Итераторы и с чем их есть #3
рабочий код именно так выглядет? Или это урезаный вариант?
Потому что в таком виде ошибки быть не должно, просто ни одной итерации не будет.
А так ты пытаешся присвоить значение поля еще не созданному объекту. reserve() только резервирует место в векторе, но не создает объектов.
Думаю ты хотел сделать что-то подобное
C++
1
2
3
4
5
vector<Action> buf_A;
buf_A.reserve(variables.size());
for (int i = 0; i < variables.size(); i++) {
    buf_A.push_back(Action());
    buf_A[i].action_name = "Stroka bes kotoroi ia jit ne mogu!");
Anion
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 16
06.04.2013, 07:55  [ТС]     Итераторы и с чем их есть #4
Нет падает здесь. Просто я неудачно сократил код )). Вот оригинал:
C++
1
2
3
4
5
6
vector<Action> buf_A;
buf_A.reserve(variables.size());
vector<Action>::iterator a = buf_A.begin();
vector<VarArray>::iterator v = variables.begin();
for (; v != variables.end(); a++, v++)
    a->action_name = insertVariable(action_name, *v, vars_identificator);
Добавлено через 3 минуты
Цитата Сообщение от Kastaneda Посмотреть сообщение
рабочий код именно так выглядет? Или это урезаный вариант?
Потому что в таком виде ошибки быть не должно, просто ни одной итерации не будет.
А так ты пытаешся присвоить значение поля еще не созданному объекту. reserve() только резервирует место в векторе, но не создает объектов.
Думаю ты хотел сделать что-то подобное
C++
1
2
3
4
5
vector<Action> buf_A;
buf_A.reserve(variables.size());
for (int i = 0; i < variables.size(); i++) {
    buf_A.push_back(Action());
    buf_A[i].action_name = "Stroka bes kotoroi ia jit ne mogu!");
Спасибо )). Action() как я понял даст пустой класс? Не знал...
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
06.04.2013, 07:57     Итераторы и с чем их есть #5
Не пустой, а созданный с пом. конструктора по умолчанию. А в данном случае мб имеет смысл написать конструктор, который принимает строку. (хотя, конечно, не стоит, если по смыслу не вписывается)
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
06.04.2013, 07:59     Итераторы и с чем их есть #6
Ты пытаешся что-то писать в пустой вектор, отсюда и ошибка.
Anion
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 16
06.04.2013, 08:16  [ТС]     Итераторы и с чем их есть #7
Цитата Сообщение от Kastaneda Посмотреть сообщение
Ты пытаешся что-то писать в пустой вектор, отсюда и ошибка.
уже дошло )). Вместо резервирования изменил размер. Спасибо )))

Добавлено через 2 минуты
Цитата Сообщение от 0x10 Посмотреть сообщение
Не пустой, а созданный с пом. конструктора по умолчанию. А в данном случае мб имеет смысл написать конструктор, который принимает строку. (хотя, конечно, не стоит, если по смыслу не вписывается)
не впишется конструктор )
MrGluck
Модератор
Эксперт CЭксперт С++
7173 / 4339 / 633
Регистрация: 29.11.2010
Сообщений: 11,791
06.04.2013, 09:08     Итераторы и с чем их есть #8
Цитата Сообщение от Anion Посмотреть сообщение
не впишется конструктор )
если задача стоит лишь в создании объекта и последующее уникальное заполнение единственного его поля std::string (то бишь нигде не требуется заполнить другое поле с помощью конструктора с одним аргументом типа std::string), то конструктор как раз вписывается. Мало того, что это сэкономит лишнюю операцию, так еще и добавит конструирование уже осмысленного объекта, что ближе к реалиям природы.
Anion
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 16
10.04.2013, 08:07  [ТС]     Итераторы и с чем их есть #9
Цитата Сообщение от MrGluck Посмотреть сообщение
если задача стоит лишь в создании объекта и последующее уникальное заполнение единственного его поля std::string (то бишь нигде не требуется заполнить другое поле с помощью конструктора с одним аргументом типа std::string), то конструктор как раз вписывается. Мало того, что это сэкономит лишнюю операцию, так еще и добавит конструирование уже осмысленного объекта, что ближе к реалиям природы.
Я знаю что такое и для чего нужен конструктор. Но спасибо за объяснения.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.04.2013, 08:11     Итераторы и с чем их есть #10
Цитата Сообщение от Anion Посмотреть сообщение
ЧЯДНТ?
А это ещё что за чемурдос?
Warezovvv
9 / 9 / 2
Регистрация: 09.12.2012
Сообщений: 219
10.04.2013, 09:00     Итераторы и с чем их есть #11
Цитата Сообщение от taras atavin Посмотреть сообщение
А это ещё что за чемурдос?
Я теперь тоже так буду вопрос ставить
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.04.2013, 09:11     Итераторы и с чем их есть #12
И? А что за чемудрос то ЧЯДНТ?
Kastaneda
10.04.2013, 09:12
  #13

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
ЧЯДНТ
интуитивно могу предположить, что это "Что Я Делаю Не Так".

taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.04.2013, 09:14     Итераторы и с чем их есть #14
У гугла спросил, он его не знает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 09:17     Итераторы и с чем их есть
Еще ссылки по теме:

STL list<> помогите есть затруднение Совсем не пойму в чем дело!!! - C++
В общем дан файл словаря из которого нужно все слова перевести в список list запись вроде корректная и все ок))но на выходе в другом файле...

Определить, есть ли в строке слова, в которых гласных больше чем согласных - C++
Подскажите пожалуйста, что не так в коде: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; int...

итераторы си++ - C++
подскажите пожалуйста какие существуют методы итераторов? и что они делают?

Итераторы - C++
Всем добрый вечер! Есть небольшие затруднения , вот например фрагмент кода: //... multimap&lt;int,Point&gt; divisionP; ...

Итераторы - C++
При удалении элемента из списка (list) - ошибка list iterator not decrementable Что делать? for(Iter = npc.begin(); Iter !=...


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

Или воспользуйтесь поиском по форуму:
Kastaneda
10.04.2013, 09:17     Итераторы и с чем их есть
  #15

Не по теме:

я тож спросил, гугл говорит что вместе с ЧЯДНТ еще употребляется УМВР (У Меня Все Работает).

Yandex
Объявления
10.04.2013, 09:17     Итераторы и с чем их есть
Ответ Создать тему
Опции темы

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