Подтвердить что ты не робот

Можно ли инициализировать вектор STL с 10 из того же целого числа в списке инициализаторов?

Можно ли инициализировать вектор STL с 10 из того же целого числа в списке инициализаторов? Мои попытки до сих пор подвели меня.

4b9b3361

Ответ 1

Я думаю, вы имеете в виду это:

struct test {
   std::vector<int> v;
   test(int value) : v( 100, value ) {}
};

Ответ 2

Используйте соответствующий конструктор, который принимает размер и значение по умолчанию.

int number_of_elements = 10;
int default_value = 1;
std::vector<int> vec(number_of_elements, default_value);

Ответ 3

Если вы используете С++ 11 и GCC, вы можете сделать это:

vector<int> myVec () {[0 ... 99] = 1};

Он называется инициализацией ранжирования и является расширением GCC.

Ответ 4

Вы можете сделать это с помощью конструктора std::vector:

vector(size_type count, 
                 const T& value,
                 const Allocator& alloc = Allocator());

Что требуется повторять count и value.

Если вы хотите использовать списки инициализаторов, вы можете написать:

const int x = 5;
std::vector<int> vec {x, x, x, x, x, x, x, x, x, x};

Ответ 5

Список инициализации для вектора поддерживается из С++ 0x. Если вы скомпилировали с С++ 98

int number_of_elements = 10;
int default_value = 1;
std::vector<int> vec(number_of_elements, default_value);

Ответ 6

можете ли вы опубликовать то, что вы делаете

 int i = 100;
vector<int> vInts2 (10, i);

vector<int>::iterator iter;
for(iter = vInts2.begin(); iter != vInts2.end(); ++iter)
{
    cout << " i " << (*iter) << endl;
}