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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.03.2016, 17:10   #21
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
так вот там при вставке обьекта , происходит перезапись всего контейнера.
Не всегда. Валидность итераторов вектора при вставке можно контролировать.
Цитата:
поэтому функция вставки возвращает итератор уже на обновленный контейнер.
1) Функция != функция-член
2) Какая именно? Например, push_back не возвращает, emplace_back не возвращает.
Возвращают только те, что вставляют в произвольное место, например, insert.
Только вот до C++11 не все inset'ы возвращали итератор.
И возвращают они не для того, чтобы "аааа, кантэйнир обнавлся, аааа бииидаааа".
Так что прежде чем писать глупости, подучитесь,
Croessmah вне форума
Старый 02.03.2016, 17:23   #22
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

вот когда вновь столкнусь с вектором - тогда и подучусь.

на данный момент я знаю что там при вставке новых элементов идет

перезапись существующих. если конечно не было зарезервированной памяти .


лень мне выкладывать результаты работы копировщика структуры

который содержит вектор. надо учить ВИН-АПИ
RAFA91 вне форума
Старый 02.03.2016, 17:25   #23
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
перезапись существующих. если конечно не было зарезервированной памяти .
наличие памяти не влияет на перезапись, влияет то куда была вставка.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 02.03.2016, 17:29   #24
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
наличие памяти не влияет на перезапись, влияет то куда была вставка.
в конец к примеру.

если не было ничего зарезервировано то идет перезапись

это проверенно на практике.
RAFA91 вне форума
Старый 02.03.2016, 17:39   #25
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

к примеру в векторе 10 элементов . capacity() возвращает 10

что будет при вставке 11-го элемента. ?
RAFA91 вне форума
Старый 02.03.2016, 17:42   #26
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

А попробовать слабо?
pu4koff вне форума
Старый 02.03.2016, 17:50   #27
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
А попробовать слабо?
у меня в студии будет перезапись всего контейнера у других не знаю.

вот если бы capacity() вернуло >10 то перезаписи всего контейнера

не было бы.
RAFA91 вне форума
Старый 02.03.2016, 17:52   #28
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Это какая-то поддельная китайская студия. Возьмите нормальную

Код:
#include <vector>
#include <iostream>

using namespace std;

int main()
{
    vector<int> vec;

    for (int i = 0; i < 15; i++)
    {
        vec.push_back(i);

        cout << "========== " << i << endl;

        cout << "size: " << vec.size() << " capacity: " << vec.capacity() << endl;
        for (auto it = vec.begin(); it < vec.end(); it++)
        {
            cout << *it << " ";
        }
        cout << endl << endl;
    }

	return 0;
}
Код:
========== 0
size: 1 capacity: 1
0

========== 1
size: 2 capacity: 2
0 1

========== 2
size: 3 capacity: 3
0 1 2

========== 3
size: 4 capacity: 4
0 1 2 3

========== 4
size: 5 capacity: 6
0 1 2 3 4

========== 5
size: 6 capacity: 6
0 1 2 3 4 5

========== 6
size: 7 capacity: 9
0 1 2 3 4 5 6

========== 7
size: 8 capacity: 9
0 1 2 3 4 5 6 7

========== 8
size: 9 capacity: 9
0 1 2 3 4 5 6 7 8

========== 9
size: 10 capacity: 13
0 1 2 3 4 5 6 7 8 9

========== 10
size: 11 capacity: 13
0 1 2 3 4 5 6 7 8 9 10

========== 11
size: 12 capacity: 13
0 1 2 3 4 5 6 7 8 9 10 11

========== 12
size: 13 capacity: 13
0 1 2 3 4 5 6 7 8 9 10 11 12

========== 13
size: 14 capacity: 19
0 1 2 3 4 5 6 7 8 9 10 11 12 13

========== 14
size: 15 capacity: 19
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 02.03.2016 в 18:03.
Alex11223 вне форума
Старый 02.03.2016, 18:19   #29
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Alex11223 Вы создайте вектор из структур.

в структуре определите копировщик что-бы мы могли видеть перезапись контейнера
RAFA91 вне форума
Старый 02.03.2016, 18:32   #30
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А, вы про это.
И что в этом удивительного?

В С++11 вроде добавили возможность использовать move конструктор вместо копирования.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Итератор для двусвязного списка Black_Dynamite Помощь студентам 0 07.11.2013 22:04
итератор set c++ Arrioh Помощь студентам 1 25.12.2012 16:01
Итератор списка по значению Link0 Общие вопросы по Java, Java SE, Kotlin 0 21.11.2010 14:02