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

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

Войти
Регистрация
Восстановить пароль
 
GetHelp
-8 / 60 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
#1

Инициализация вектора - C++

06.08.2014, 23:56. Просмотров 586. Ответов 3
Метки нет (Все метки)

у меня в классе есть vector из string (константный, просто строки нужны как образец для других функций), в конструкторе соответственно надо это дело как то проинициализировать... вообще можно наверное и просто массив строк сделать, только мне кажется это еще геморнее...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2014, 23:56     Инициализация вектора
Посмотрите здесь:

C++ Инициализация вектора массивом
Инициализация вектора в стиле С++0х C++
C++ Инициализация вектора
Инициализация вектора структур C++
Дан список, элементы которого являются координатами вектора. Найти длину вектора C++
C++ Инициализация вектора значениями при объявлении
Определить количество положительных элементов вектора С(10) и заменить этим значением минимальный элемент вектора А(5) C++
Составить главную программу и функцию. Для данного вектора А(М) найти количество неповторяющихся элементов вектора C++
C++ Инициализация вектора статическим массивом в конструкторе класса
Инициализация вектора C++
C++ Вектора. Их инициализация и использование в ветвлениях
Ошибка с итераторами для целочисленного вектора и вектора структуры C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6819 / 4030 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
07.08.2014, 00:00     Инициализация вектора #2
Цитата Сообщение от GetHelp Посмотреть сообщение
вообще можно наверное и просто массив строк сделать, только мне кажется это еще геморнее...
Это лучше, т.к. не жрет впустую память из кучи, да и вообще не тратится время на выделение памяти.
Если есть С++11, то все просто (с вектором аналогично можно поступить):
C++
1
2
3
4
5
6
7
8
9
class C
{
public:
    C() : buf{"test1", "test2"}
    {}
 
private:
    const char * buf[2];
};
gromo
 Аватар для gromo
367 / 266 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
07.08.2014, 03:45     Инициализация вектора #3
GetHelp, или так, чтоб меньше писанины (да и constexrp можно опустить)
C++
1
2
3
4
5
6
class C
{
public:
    C() = default;
    static constexpr const char * buf[2] {"test1", "test2"};
};
Странно, gcc выдает предупреждение, если убрать const, оставив constexpr.
constexpr же включает в себя const... (не совсем так для C++14, но сейчас не об этом)
gray_fox
07.08.2014, 03:50     Инициализация вектора
  #4

Не по теме:

Цитата Сообщение от gromo Посмотреть сообщение
constexpr же включает в себя const...
включает "внешний" const, т.е constexpr char * подразумевает char * const, а не char const* const...
Тем более тут массив const char*, который и так const, my bad...

Yandex
Объявления
07.08.2014, 03:50     Инициализация вектора
Ответ Создать тему
Опции темы

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