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

Двумерынй вектор, удаление через erase - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Непонятный пример из книги Дейтел Как программировать на C++ http://www.cyberforum.ru/cpp-beginners/thread644878.html
Вот сделал скриншот. Хотя я точно так пишу, но выскакивает ошибка при компиляции. А почему? error: expected ',' or ';' before '{' token|
C++ Определить, имеется ли среди чисел хотя бы пара равных между собой Помогите решить, Пожалуйста) 3.Даны 3 вещественных числа a,b,c. Определить, имеется ли среди них хотя бы 1пара равных между собой чисел. Одна тема - одна задача! http://www.cyberforum.ru/cpp-beginners/thread644845.html
C++ перевернуть двухсвязный линейный список
Здравствуйте скиньте кто нибудь код перевората двухсвзнакого линейного списка, меняя только указатели
Передача по указателю и по ссылке C++
Всем привет! Есть функция, в которую передается ссылка: void Compare(int &p) { int * str = p;// здесь ошибка нельзя конвертировать int в int * // надо писать int * str = &p; } int main()
C++ Функция size() стандартного класса string http://www.cyberforum.ru/cpp-beginners/thread644816.html
Добрый день. При поптыке посчитать количество символов в введённой строке на латыне - отображает верный результат, а кириллицу читает неправильно. Компилятор GNU C++. В чём может быть дело и как исправить эту ошибку? #include <iostream> #include <string> using namespace std; int main() { string line; cout << "Введите, пожалуйста, фразу: " << endl;
C++ Странное объявление конструктора Всем привет! Читаю Дейтела и увидел вот такое объявление конструктора. class Exceptions: public runtime_error { public: Exceptions::Exceptions():runtime_error(" Error! "){} }; Непонятно зачем здесь оператор расширения области видимости? Ведь конструктор в пределах видимости класса.:) подробнее

Показать сообщение отдельно
Stille
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 5
31.08.2012, 19:58  [ТС]     Двумерынй вектор, удаление через erase
Цитата Сообщение от novi4ok Посмотреть сообщение
вроде получается, что Minj не может быть меньше размера вектора, но ты попробуй написать как я предложил, и вылови эту ситуацию. или в отладчике посмотри call stack в момент, когда вылетает эта ситуация. или приведи весь код полностью, я попробую воспроизвести. можно, конечно, чисто мозговыми усилиями дойти, но это - если удовольствие доставляет. а если быстро причину нужно найти - мой путь быстрее.
Я пробовал так, как ты написал, ничего не изменилось, т.к. он никогда и не был меньше размера вектора. Я сделал чуть по другому:
вместо
C++
1
Clusters.erase(Clusters.begin() + Minj);
написал
C++
1
Clusters.erase(Clusters.end() - 1 - (Clusters.size() - Minj));
и, по какой-то неизвестной мне причине, ошибки стали вылетать реже. Не исчезли совсем, но реже и уже на другую строчку библиотеки вектора:
C++
1
size_type size() const        { return size_type(this->_M_finish - this->_M_start); }
Поищу еще проблему, если не найду, то перепишу всю функцию. Но, используя Clusters.end(), он хотя бы иногда (где-то в 30% случаев) проходит все 100 итераций без вылетов
 
Текущее время: 05:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru