Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2015, 20:49   #1
FULEREN
Пользователь
 
Регистрация: 23.03.2012
Сообщений: 56
По умолчанию <vector>, инициализация значений.

Доброго времени суток, форумчане. Имеется проблема:
Код:
std::vector <char> v1 = { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" };
Пытаюсь инициализировать вектор в заголовочном файле класса, что бы потом с ним работать. Компилятор говорит: инициализация списка в списке инициализаторов члена или нестатического члена данных не реализована. Как это можно исправить, заранее благодарю за любой ответ.
FULEREN вне форума Ответить с цитированием
Старый 21.03.2015, 21:04   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Вы объявили контейнер для символов, а хотите хранить строки

Код:
    std::vector <std::string> v1 = { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" };
Код:
    std::vector <char> v2 = { 'a', 'b', 'c' };
8Observer8 вне форума Ответить с цитированием
Старый 21.03.2015, 21:14   #3
FULEREN
Пользователь
 
Регистрация: 23.03.2012
Сообщений: 56
По умолчанию

Код:
std::vector <std::string> v1 = { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" };
Исправил, такая же ошибка.
FULEREN вне форума Ответить с цитированием
Старый 21.03.2015, 22:08   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Ваш компилятор не поддерживает C++11. Придётся через push_back:

Код:
    std::vector <std::string> v1;
    v1.push_back( "armin" );
    v1.push_back( "eleg" );
    v1.push_back( "autu" );
Или заранее в конструкторе зарезервировать:

Код:
    std::vector <std::string> v1(3);
    v1[0] = "armin";
    v1[1] = "eleg";
    v1[2] = "autu";
Либо позже выделить место под элементы:

Код:
    std::vector <std::string> v1;

    v1.resize( 3 );
    v1[0] = "armin";
    v1[1] = "eleg";
    v1[2] = "autu";
Если бы поддерживал, то можно вот так ещё инициализировать:

Код:
std::vector <std::string> v1( { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" } );
И так:

Код:
    std::vector <std::string> v1;
    v1.assign( { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" } );

Последний раз редактировалось 8Observer8; 21.03.2015 в 22:13.
8Observer8 вне форума Ответить с цитированием
Старый 22.03.2015, 14:29   #5
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от FULEREN Посмотреть сообщение
Пытаюсь инициализировать вектор в заголовочном файле класса, что бы потом с ним работать.
В заголовочном файле должно быть только простое объявление. Определение - в cpp.
Somebody вне форума Ответить с цитированием
Старый 22.03.2015, 15:40   #6
halcyon
crafter
Форумчанин
 
Аватар для halcyon
 
Регистрация: 03.09.2011
Сообщений: 127
По умолчанию

Цитата:
Сообщение от FULEREN Посмотреть сообщение
Доброго времени суток, форумчане. Имеется проблема:
Код:
std::vector <char> v1 = { "armin", "eleg", "autu", "atika", "foto", "cat", "burya", "bobr", "diya", "alex" };
Пытаюсь инициализировать вектор в заголовочном файле класса, что бы потом с ним работать. Компилятор говорит: инициализация списка в списке инициализаторов члена или нестатического члена данных не реализована. Как это можно исправить, заранее благодарю за любой ответ.
Где вы пытаетесь инициализировать объект v1?
halcyon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инициализация ссылки на vector не через аргумент конструктора. Leiph Общие вопросы C/C++ 9 10.02.2013 16:28
присвоение значений vector в функции SAMOUCHKA Общие вопросы C/C++ 5 27.10.2012 07:42
static const vector инициализация red6ds Общие вопросы C/C++ 2 06.10.2012 13:03
std::vector и его инициализация coNsept Общие вопросы C/C++ 5 15.06.2012 13:40
STL: vector, инициализация Сtrl Общие вопросы C/C++ 3 07.05.2011 19:41