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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Union
 Аватар для Union
17 / 17 / 2
Регистрация: 16.08.2010
Сообщений: 252
24.04.2011, 21:49     Вопрос по вектору string'ов #1
Не совсем представляю как работает вектор стрингов
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) C++
Вопрос по string'у C++
C++ Поиск строки по вектору
C++ Можно ли применить find_if к вектору
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
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
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
25.04.2011, 01:53     Вопрос по вектору string'ов #23
Указатель зависит от целевой архитектуры. Капитан намекает, что он может быть и 8 байт и сколько либо еще.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
25.04.2011, 12:20     Вопрос по вектору string'ов #24
ОК,а тогда, а тогда чё за херь вылезает у меня в dev c++ типа подсказки, когда я пишу так:
C++
1
2
[FONT=monospace]string.
 [/FONT]
Вот после того,как я ставлю точку вылезает подсказка из пяти строчек

Я так понимаю, эти все переменные класса sring и они есть. И они занимают память
Миниатюры
Вопрос по вектору string'ов  
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.04.2011, 15:54     Вопрос по вектору string'ов #25
А что, кто-то спорил, что поля класса память не занимают?
Union
 Аватар для 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
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
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++ Обращение к вектору полученному через указатель
Присвоить вектору значения сумм строк матрицы C++
C++ Можно ли значение вектора A передать вектору B через swap?

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

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

Текущее время: 17:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru