Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2010, 22:15   #1
Tema_Crazzzy
Форумчанин
 
Регистрация: 29.04.2010
Сообщений: 114
По умолчанию Удаление элемента из класса контейнера

Бодрого времени суток!
Имеется следующее. Объект класса-контейнера QStringList (тот же самый vector только для хранения строк из библиотке Qt)

Код:
QStringList List[20];

for (int i=0;i<20;i++) List[i]<<str1<<str2<<str3;
Далее нужно удалить скажем к-тый элемент:

Код:
List.erase(List.begin()+k);
Но на это компилятор ругается (понятно почему)!!!
Как можно заменить erase в данном случае???

Заранее спасибо!

Последний раз редактировалось Tema_Crazzzy; 30.10.2010 в 22:28.
Tema_Crazzzy вне форума Ответить с цитированием
Старый 30.10.2010, 22:20   #2
elja_1989
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 58
По умолчанию

так если понятно почему ругается, что за вопрос тогда..
erase принимает итератор.
а List.erase(Lest.begin()) работает? или List.erase(Lest.first())
elja_1989 вне форума Ответить с цитированием
Старый 30.10.2010, 22:26   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

По крайней мере в STL есть алгоритм advance - продвигает итератор на указанное число позиций вперед. Думаю, в Qt тоже что-то такое есть.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 30.10.2010, 22:28   #4
Tema_Crazzzy
Форумчанин
 
Регистрация: 29.04.2010
Сообщений: 114
По умолчанию

Цитата:
List.erase(Lest.begin()) работает? или List.erase(Lest.first())
Нет, не работает! Компилятор то пропускает, а в программе при удалении всплывает окно аварийного завершения и указание на ошибку сегментации.
Tema_Crazzzy вне форума Ответить с цитированием
Старый 30.10.2010, 22:31   #5
elja_1989
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 58
По умолчанию

там может List тупо нет элементов или он не выделился.. просто написанно что удалять так, ну значит так.. а ошибка сигментации это уже не из этой оперы..
elja_1989 вне форума Ответить с цитированием
Старый 30.10.2010, 22:45   #6
Tema_Crazzzy
Форумчанин
 
Регистрация: 29.04.2010
Сообщений: 114
По умолчанию

Элементы там есть!!! Проверял))
Если указываю массив List как динамический, то проблема с вводом
если как статический, то с удалением.....
Tema_Crazzzy вне форума Ответить с цитированием
Старый 26.11.2010, 15:17   #7
odinalex
Новичок
Джуниор
 
Регистрация: 26.11.2010
Сообщений: 1
По умолчанию

Та же ситуация. Не разобрались еще, как можно удалить элемент из QStringList? А еще точно так же ругается на метод .replace
Вот только что пришла идея: завести новый QStringList, скопировать туда все строки кроме i-ой, а старый QStringList сделать clear(). Только это как-то неэтично.
odinalex вне форума Ответить с цитированием
Старый 26.11.2010, 15:51   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

у тебя массив листов, а обращаешься как к одному объекту. проходи в цикле и удаляй из каждого листа
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление элемента массива Studentka_iz_ZP Общие вопросы C/C++ 2 02.10.2010 13:55
Удаление элемента из массива prostac Помощь студентам 2 30.09.2010 11:14
удаление элемента из списка yagluboko Помощь студентам 1 10.04.2010 14:54
удаление элемента из списка aurora_87 Общие вопросы C/C++ 1 18.06.2009 14:02
Удаление элемента массива chiffa Общие вопросы Delphi 1 03.01.2008 19:24