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

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

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

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

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

Не совсем представляю как работает вектор стрингов
C++
1
std::vector<std::string> texts;
Вектор по стандарту располагается в едином куске памяти. Если я использую вектор чаров (массивов), они фиксированного размера. Это значит что при выделении памяти методом reserve я четко выделяю себе нужный кусок памяти, при изменении элемента в середине, сдвига всего, что идет после - не происходит. А вот со стрингом не понятно. При выделении памяти вродебы размер элемента составляет 1 байт... Получается количество элементов, которое поместится в выделенную память предсказать нельзя.
Если я меняю содержимое стринга, находящегося в середине вектора, всё, что идёт после - смещается, если размер нового стринга не равен размеру старого. Я прав?
Или вектор стрингов - это вектор указателей, а информация хранится вне его?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
4929 / 2509 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
25.04.2011, 01:53     Вопрос по вектору string'ов #23
Указатель зависит от целевой архитектуры. Капитан намекает, что он может быть и 8 байт и сколько либо еще.
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,304
25.04.2011, 12:20     Вопрос по вектору string'ов #24
ОК,а тогда, а тогда чё за херь вылезает у меня в dev c++ типа подсказки, когда я пишу так:
C++
1
2
[FONT=monospace]string.
 [/FONT]
Вот после того,как я ставлю точку вылезает подсказка из пяти строчек

Я так понимаю, эти все переменные класса sring и они есть. И они занимают память
Миниатюры
Вопрос по вектору string'ов  
silent_1991
Эксперт C++
4949 / 3025 / 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
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,304
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++ Поиск, Сортировка по Вектору в с++
C++ Задать размерность вектору генератором случайных чисел
Проверка индексов при доступе к вектору через [] C++

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

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

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