Как заполнить вектор при инициализации значениями в одну строку?

Рейтинг: 1Ответов: 2Опубликовано: 27.11.2014

Как заполнить вектор при инициализации значениями в одну строку? В примерах встречаю такое, а на практике не работает.

#include <iostream>
#include <vector>

using namespace std;

int main(){
    vector<int> v{ 1, 2, 3 }; // как заполнить вектор значениями в одну строку?

    return 0;
}

Вывод:

1>d:\мои документы\visual studio 2010\projects\vect\vect\main.cpp(7): error C2601: v: недопустимые локальные определения функций

Ответы

▲ 4Принят

Да так и заполнять, как в вашем примере. Только чтоб это работало, нужен компилятор с поддержкой C++11. По всей вероятности, у вас не такой.

Вот пример:

С++11 - работает

С++03 - не работает

▲ 2

Visual Studio 2010, насколько я помню, была не очень продвинута в плане новых фич C++. Переходите на VS 2013, она поддерживает.

Вот список поддерживаемых фич до версии 2013 включительно и свежем preview VS 2015 (сгруппированно по стандартам аж до C++17).