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

Vector - out of range или выход за пределы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программу Pascal переписать под c++ http://www.cyberforum.ru/cpp-beginners/thread630582.html
Всем доброго времени суток много увожаемые пользователи форума. Прошу помощи у вас, по скольку очень плохо владею языком c++ program lolz; Var A,b,c,d,e,f,g: real; Begin Write("vvedite a"); Readln (a); B:=a*a;
C++ Деление кода на .h .cpp Подскажите пожалуйста как правильно поделить код! Обязательно чтобы были заголовочные файлы и файлы .cpp main.cpp # include <iostream> using namespace std; # include <conio.h> # include "queue.h" int main(void) { http://www.cyberforum.ru/cpp-beginners/thread630543.html
C++ Дополнение char строк пробелами при записи их в файл
Пытаюсь написать простенькую прогу, создающую базу данных имен и номеров сотрудников в файле. Столкнулся со следующей проблемой: при записи строк, имеющих длину меньше длины массива, в файл они дополняются мусором - примерно так: Ivan ММММММММММIvanov ММММММММ12345 МММММММММ. При попытке их последующего получения из файла и записи в переменные они также имеют мусорные символы. Собственно...
Радио плеер C++
Решил написать кросс платформенный радио плеер (потоковый Icecast2). Куда копать? И с чего лучше начать?
C++ Выделение и освобождение памяти в c++ http://www.cyberforum.ru/cpp-beginners/thread630530.html
Не давно наткнулся на такую замечательность : system("PAUSE");//1 раз int *p = new int; // память system("PAUSE");//2 раз delete p;// нет память Запускаю программу,смотрю скока мемори она хавает 226(примерно)
C++ Ошибка в подсчете количества инверсий Здравствуйте, помогите разобраться с подсчетом количества инверсий, в случае повторяющихся элементов. Количество элементов в массиве 65537, максимальное значение 10^9, элементы не отрицательные, время 0.5 с. Гуглил, нагуглил три алгоритма (http://cppalgo.blogspot.com/2011/02/blog-post_07.html), но там случай различных элементов. Написал первый алгоритм #include <iostream> #include... подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
31.07.2012, 15:10     Vector - out of range или выход за пределы
Ну я даже не знаю, почему у вас так. Есть failsafe-вариант, но его ж признают «нечестным».
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
#include <vector>
#include <iostream>
 
using namespace std;
 
int main()
{
    vector<int> arr;
    arr.push_back(1);
    arr.push_back(2);
    arr.push_back(3);
 
    vector<int> temp(arr.size() * 2);
    for (vector<int>::iterator i = arr.begin(); i != arr.end(); i++) {
        temp.push_back(*i);
        temp.push_back(*i);
    }
    arr = temp;
 
    for (vector<int>::iterator i = arr.begin(); i != arr.end(); i++) {
        cout << *i << endl;
    }
 
    return 0;
}
Цитата Сообщение от novi4ok Посмотреть сообщение
это был неправильный ответ. внутри такого цикла нельзя изменять вектор, иначе итератор становится "запорченным".
Не, там вся хитрость в i = arr.insert(i, *i);. Да, итератор инвалидируется, но insert возвращает правильный итератор после вставки, указывающий на вставленный элемент. Но, возможно, компилятор посчитал себя самым умным и проверку i != arr.end() закешировал, в итоге сравнивалось не пойми с чем, а не с валидным итератором.
 
Текущее время: 21:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru