Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
21 / 19 / 5
Регистрация: 11.02.2009
Сообщений: 383
1

Добавить элемент на n-e место в std::vector

20.04.2010, 18:07. Просмотров 1533. Ответов 7
Метки нет (Все метки)

Блин нарорд... я затупил по жоскому.... у меня std::vector, пытаюсь добавить элемент на n-e место:

C++
1
2
3
4
5
6
7
        using namecpace std;
        vector<PPoint*> contur;
//_____________________________________________________
        PPoint* t;
        vector<PPoint*>::iterator it=contur.begin();
        advance(it,n);
        contur.insert(it,t);
ошибок не вызывает, а объект не добавляется((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2010, 18:07
Ответы с готовыми решениями:

Std::vector добавить новый элемент собственного класса без использования конструктора копирования
Всем привет! Есть один класс, который я хочу хранить в std::vector. Создать массив, с типом...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же...

Передача функции указатель на элемент std::vector<std::string>
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в...

Как передать целочисленную матрицу типа std::vector<std::vector<int> > в функцию?
Здравствуйте. Почитал на форуме, но так и не понял что я делаю не так. Имеется двумерный вектор....

7
Эксперт С++
2919 / 1268 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
20.04.2010, 18:33 2
C++
1
2
3
4
5
6
7
8
9
10
    vector<PPoint*>::iterator it=contur.begin();
 
    assert(n <= contur.size()); // сработает или нет?
    if (n <= contur.size())
    {
        advance(it,n);
        contur.insert(it,t);
    }
    else
        throw out_of_range("Wrong index!");
0
21 / 19 / 5
Регистрация: 11.02.2009
Сообщений: 383
20.04.2010, 19:11  [ТС] 3
нет.. блин мне нужно, чтобы она добавила объекты к существующим... допустим, у меня имеется 2 объекта в векторе, а надо добавить третий между ними... как??
0
Эксперт С++
2919 / 1268 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
20.04.2010, 19:28 4
Вот именно так.
1
554 / 508 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
20.04.2010, 19:41 5
или так (n - 0-based индекс, который будет иметь элемент после добавления):

C++
1
2
3
4
5
6
if (n <= contur.size()){
    contur.insert(contur.begin() + n, t);
} else {
    // do something else, maybe append it at the end?
    ;
}
0
21 / 19 / 5
Регистрация: 11.02.2009
Сообщений: 383
20.04.2010, 19:44  [ТС] 6
пытался... тоже самое

Добавлено через 49 секунд
если ты имеешь ввиду, что n - это Int
0
554 / 508 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
20.04.2010, 19:54 7
Цитата Сообщение от -MefistofeL- Посмотреть сообщение
пытался... тоже самое

Добавлено через 49 секунд
если ты имеешь ввиду, что n - это Int
попробуй по-простому, как я тебе написал. зачем ты усложняешь? advance() отложи для других контейнеров. для вектора он ни к чему. vector - random access container type.

Добавлено через 5 минут
кстати, у тебя:

PPoint* t;

т.е. t объяслена как указатель, но значения ей не присваивается, там какой-то мусор лежит, но этот мусор должен добавиться к вектору. проблемы начнутся при попытке использовать его как указатель на что-то.
1
21 / 19 / 5
Регистрация: 11.02.2009
Сообщений: 383
20.04.2010, 21:11  [ТС] 8
Цитата Сообщение от novi4ok Посмотреть сообщение
т.е. t объяслена как указатель, но значения ей не присваивается, там какой-то мусор лежит, но этот мусор должен добавиться к вектору. проблемы начнутся при попытке использовать его как указатель на что-то.
на это не обращай внимание... t принимается в функции

Добавлено через 49 минут
чорд.. не в этом трабла была... сори челы и спс за помощь))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2010, 21:11

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удалить элемент из std::vector
vector&lt;int&gt; k; надо удалить k элемент.

Вывести значения std::vector<std::vector<int*> >
Подскажите, как вывести значения? const size_t row = 3; const size_t col = 3;...

Как изменять размер std::vector<std::vector>?
Здравствуйте, как нужно изменять размер std::vector&lt;std::vector&gt; например: ...

Удалить первый совпадающий по значению элемент из std::vector
Пояснение: дано допустим так: int i = 5; Нужно удалить из вектора vector&lt;int&gt; первый попавшийся...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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