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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Union
17 / 17 / 2
Регистрация: 16.08.2010
Сообщений: 252
#1

Вопрос по вектору string'ов - C++

24.04.2011, 21:49. Просмотров 1712. Ответов 28
Метки нет (Все метки)

Не совсем представляю как работает вектор стрингов
C++
1
std::vector<std::string> texts;
Вектор по стандарту располагается в едином куске памяти. Если я использую вектор чаров (массивов), они фиксированного размера. Это значит что при выделении памяти методом reserve я четко выделяю себе нужный кусок памяти, при изменении элемента в середине, сдвига всего, что идет после - не происходит. А вот со стрингом не понятно. При выделении памяти вродебы размер элемента составляет 1 байт... Получается количество элементов, которое поместится в выделенную память предсказать нельзя.
Если я меняю содержимое стринга, находящегося в середине вектора, всё, что идёт после - смещается, если размер нового стринга не равен размеру старого. Я прав?
Или вектор стрингов - это вектор указателей, а информация хранится вне его?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2011, 21:49     Вопрос по вектору string'ов
Посмотрите здесь:

Вопрос по string'у - C++
Насколько мне известно, string резервирует память, как и вектор... Если это так, возможно ли отключить резервирование, т.к. в ходе работы...

Вопрос по строкам (string) - C++
нужно взять с клавиатуры 2 строки...ну я недолго думая решил воспользоваться методом getline(), потому как манипулятор skipws не работает...

Поиск строки по вектору - C++
Добрый день. Помогите разобраться с проблемой пожалуйста: я перегоняю данные из бинарного файла в вектор (так нужно по заданию), затем мне...

Поиск по вектору не работает - C++
Есть класс и контейнер-вектор, надо отсортировать контейнер вектор,выполнить поиск #include &lt;iostream&gt; #include &lt;vector&gt; #include...

Поиск, Сортировка по Вектору в с++ - C++
Не могу разобраться как обратится к элементу класса например name. в векторе groupArray. Из за этого не могу реализовать поиск по имени,...

Можно ли применить find_if к вектору - C++
Можно ли применить find_if к вектору? Нужно найти среди компонент вектора первое число, которое больше задаваемой величины (в векторе...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
25.04.2011, 01:51     Вопрос по вектору string'ов #21
Цитата Сообщение от kravam Посмотреть сообщение
, но код той же функции str.size() в оперативной памяти место занимает, как ни крути.
strlen тоже отъест место от бинарника
Цитата Сообщение от kravam Посмотреть сообщение
И коды других функций методов тоже.
тут уже говорилось, что при загрузке программы в озу код функций-членов будет встречатся единожды, речь о грошах идет
Цитата Сообщение от kravam Посмотреть сообщение
Вот что я имел ввиду, говоря о расходе памяти в случае со string.
это странно

Цитата Сообщение от kravam Посмотреть сообщение
А указатель на char 4 байта ни больше ни меньше.
да нет же
silent_1991
25.04.2011, 01:53
  #22

Не по теме:

alex_x_x, хм... я тоже думал, что в 32-хбитных системах указатель занимает 4 байта...

fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
25.04.2011, 01:53     Вопрос по вектору string'ов #23
Указатель зависит от целевой архитектуры. Капитан намекает, что он может быть и 8 байт и сколько либо еще.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
25.04.2011, 12:20     Вопрос по вектору string'ов #24
ОК,а тогда, а тогда чё за херь вылезает у меня в dev c++ типа подсказки, когда я пишу так:
C++
1
2
[FONT=monospace]string.
 [/FONT]
Вот после того,как я ставлю точку вылезает подсказка из пяти строчек

Я так понимаю, эти все переменные класса sring и они есть. И они занимают память
Миниатюры
Вопрос по вектору string'ов  
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.04.2011, 15:54     Вопрос по вектору string'ов #25
А что, кто-то спорил, что поля класса память не занимают?
Union
17 / 17 / 2
Регистрация: 16.08.2010
Сообщений: 252
25.04.2011, 16:02  [ТС]     Вопрос по вектору string'ов #26
Вы явно ушли от темы. Я спрашивал применительно к вектору.
Нужные мне ответы я получил.
silent_1991
25.04.2011, 16:04
  #27

Не по теме:

Union, с чем вас и поздравляю.

kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
25.04.2011, 16:10     Вопрос по вектору string'ов #28
Цитата Сообщение от silent_1991 Посмотреть сообщение
А что, кто-то спорил, что поля класса память не занимают?
ну вот ещё расходы на память. Я это всё автору, пусть знает правду.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2011, 16:21     Вопрос по вектору string'ов
Еще ссылки по теме:

Как обращаться к вектору из структуры - C++
Я записала в вектор структуру: struct Sotrudnic { char surname, name, patronymic, propiska, pol, status; int passport, age,...

Поиск по вектору наименьшего отсутствующего элемента - C++
В общем, есть вектор, в нем хранятся значения типа &lt;unsigned int&gt;. Как за наименьшее количество проходов по вектору найти наименьший...

Обращение к вектору полученному через указатель - C++
Всем привет, Появился вопрос по поводу обращения к вектору полученному через указатель. Выглядит так: Передаю адрес вектора в...

Присвоить вектору значения сумм строк матрицы - C++
Всем привет, есть такое задание: Обязательно использовать динамическую память. По заданной матрице составить вектор, элементы которого...


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

Или воспользуйтесь поиском по форуму:
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
25.04.2011, 16:21     Вопрос по вектору string'ов #29
kravam, Не столь огромные расходы при сейчашних компах.
Yandex
Объявления
25.04.2011, 16:21     Вопрос по вектору string'ов
Ответ Создать тему
Опции темы

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