Форум программистов, компьютерный форум, киберфорум
Наши страницы

Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ gcc VS DEV-C++ 4.9.9.2 http://www.cyberforum.ru/cpp-beginners/thread53664.html
Люди!! Срочно нужны знающие люди по данному вопросу.Только сейчас узнал,что вся практика будет в gcc...... Какие отличия вообще между ними ?! Программенг в SunOS... gcc сишный компиль.а вот...
C++ Преобразовать последовательность Народ, сталкнулся с таким заданием (я примерно понял как делать) возникла проблема. Задачние: Даны действительные числа А1,...А20. Преобразовать последовательность: А1,А3,А5...А19; А2,А4...А20. Я... http://www.cyberforum.ru/cpp-beginners/thread53662.html
C++ Проблема со считыванием строк из класса.
Всем привет.На ютубе узрел ролик... using namespace std; int main() { ifstream f("C:\Documents and Settings\Vlad\My Documents\My Pictures\fuck.txt");
Отсортировать все символы в порядке возрастания методом пузырька C++
символы: M A S S I V - char нужно Отсортировать все символы в порядке возрастания медодом пузырька .Нужно нарисовать блок схему (((((( Мальчики ПОМОГИТЕ!!!! кто может пожалуйста..!(((
C++ Многочлен P(x) степени N http://www.cyberforum.ru/cpp-beginners/thread53622.html
помогите с задачкой: задача: Дан многочлен Р(х) степени N. Даны действительные числа А и В. Получить многочлен (Ах+В)Р(х). прогу писать не нада. помогите плиз написать математическую формулу решения...
C++ помогите с програмкой Необходимо написать программку, открывающую текстовый файл, которая при просмотре файла: удаляет в каждой строке слова после которых стоит любой знак препинания, в том числе и сам знак... Помогите... подробнее

Показать сообщение отдельно
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
02.10.2009, 05:03
комменты с gcc

resize

C++
1
2
3
4
5
6
7
8
9
10
11
/**
       *  @brief  Resizes the %vector to the specified number of elements.
       *  @param  new_size  Number of elements the %vector should contain.
       *  @param  x  Data with which new elements should be populated.
       *
       *  This function will %resize the %vector to the specified
       *  number of elements.  If the number is smaller than the
       *  %vector's current size the %vector is truncated, otherwise
       *  the %vector is extended and new elements are populated with
       *  given data.
       */


reserve

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
       *  @brief  Attempt to preallocate enough memory for specified number of
       *          elements.
       *  @param  n  Number of elements required.
       *  @throw  std::length_error  If @a n exceeds @c max_size().
       *
       *  This function attempts to reserve enough memory for the
       *  %vector to hold the specified number of elements.  If the
       *  number requested is more than max_size(), length_error is
       *  thrown.
       *
       *  The advantage of this function is that if optimal code is a
       *  necessity and the user can determine the number of elements
       *  that will be required, the user can reserve the memory in
       *  %advance, and thus prevent a possible reallocation of memory
       *  and copying of %vector data.
       */


короче, видимо, reserve не меняет вектор, а делает его компактным, чтобы все изменения размеров укладывались в один блок памяти
иначе, если вектор будет маленький и для него выделится блок, а соседняя память чем-нибудь займётся, то, при увеличении его размера, нужно будет выделять новую память и копировать туда весь вектор (как в realloc'е 89 года, если памяти хватает, он расширит блок, а если нет, то выделит новый и будет копировать туда общую малую часть)
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru