Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программу Pascal переписать под c++ https://www.cyberforum.ru/ cpp-beginners/ thread630582.html
Всем доброго времени суток много увожаемые пользователи форума. Прошу помощи у вас, по скольку очень плохо владею языком c++ program lolz; Var A,b,c,d,e,f,g: real; Begin ...
Деление кода на .h .cpp C++
Подскажите пожалуйста как правильно поделить код! Обязательно чтобы были заголовочные файлы и файлы .cpp main.cpp # include <iostream> using namespace std; # include <conio.h> # include...
C++ Дополнение char строк пробелами при записи их в файл
Пытаюсь написать простенькую прогу, создающую базу данных имен и номеров сотрудников в файле. Столкнулся со следующей проблемой: при записи строк, имеющих длину меньше длины массива, в файл они...
C++ Радио плеер Решил написать кросс платформенный радио плеер (потоковый Icecast2). Куда копать? И с чего лучше начать? https://www.cyberforum.ru/ cpp-beginners/ thread630531.html
C++ Выделение и освобождение памяти в c++ https://www.cyberforum.ru/ cpp-beginners/ thread630530.html
Не давно наткнулся на такую замечательность : system("PAUSE");//1 раз int *p = new int; // память system("PAUSE");//2 раз delete p;// нет память Запускаю программу,смотрю скока мемори...
Ошибка в подсчете количества инверсий C++
Здравствуйте, помогите разобраться с подсчетом количества инверсий, в случае повторяющихся элементов. Количество элементов в массиве 65537, максимальное значение 10^9, элементы не отрицательные,...
C++ Контейнерные классы
Есть некоторое сомнения, помоготи пожалуйста: Если у меня есть например такой код: vector<int> * pmyvec; pmyvec->push_back(3); pmyvec->push_back(4); delete pmyvec; Есть ли в этом коде...
C++ Обьяснить программу (Принципи ее работы) Здравствуйте! Есть программа: #include <stdio.h> #include <memory.h> struct arrInt { char * data; int length; https://www.cyberforum.ru/ cpp-beginners/ thread630498.html
C++ Как достать указатель на объект из контейнера set https://www.cyberforum.ru/ cpp-beginners/ thread630464.html
Имеется вот такой код #include "stdafx.h" #include <string> #include <iostream> #include <fstream> #include <set> #include <conio.h> using namespace std;
C++ Значение указателей (*ptr.) на пустые ячейки памяти Здравствуйте, уважаемые форумчане! С началом изучения С++ стало возникать множество вопросов. Когда резервируется свободная память некоторого типа, то значения указателей к этим ячейкам выглядят... https://www.cyberforum.ru/ cpp-beginners/ thread630426.html
554 / 508 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
31.07.2012, 15:01 0

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

31.07.2012, 15:01. Просмотров 6103. Ответов 41
Метки (Все метки)

Ответ

Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Эм...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <vector>
#include <iostream>
 
using namespace std;
 
int main()
{
    vector<int> arr;
    arr.push_back(1);
    arr.push_back(-1);
 
    for (vector<int>::iterator i = arr.begin(); i != arr.end(); i += 2) {
        i = arr.insert(i, *i);
    }
 
    for (vector<int>::iterator i = arr.begin(); i != arr.end(); i++) {
        cout << *i << endl;
    }
 
    return 0;
}
это был неправильный ответ. внутри такого цикла нельзя изменять вектор, иначе итератор становится "запорченным". лучше так:
C++
1
2
3
4
5
6
7
8
std::vector<int>v;
v.push_back(0);
v.push_back(1);
v.push_back(2);
int size = v.size();
for (int i = size-1; i >=0; i--){
   v.insert (v.begin()+i, v.begin()+i);
}
проверь, может где какую мелочь подкрутить нужно, но думаю должно сработать.
это - на случай, если вектор небольшой, или производительность высокая не требуется. если случай другой, то лучше второй вектор создать, сразу зарезервировав память на двойную длину исходного вектора, проитерировать первый вектор, допивывая каждый его элемент в выходной элемент дважды. затем присвоить то, что получилось, первому. будет значительно (!) быстрее.

Вернуться к обсуждению:
Vector - out of range или выход за пределы
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.07.2012, 15:01
Готовые ответы и решения:

Выход за пределы вектора ("Vector subscript out of range") - найти и исправить ошибку в коде
Имеется код: struct orders { string product; string mark; string surname; ...

Выход за пределы vector
Не могу понять почему происходит выход за пределы vectora после первого прохождения while....

Struct / Vector / Expression: vector subscript out of range
Добрый вечер. Имеется структура: struct Contact { public: string name; vector&lt;string&gt;...

Vector out of range
Проблема очень проста. Есть программа, которая считывает txt файл и выводит результат на консоль,...

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