Can I initialize an STL vector with 10 of the same integer in an initializer list?

。_饼干妹妹 提交于 2020-07-04 06:07:50

问题


Can I initialize an STL vector with 10 of the same integer in an initializer list? My attempts so far have failed me.


回答1:


I think you mean this:

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



回答2:


Use the appropriate constructor, which takes a size and a default value.

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



回答3:


If you're using C++11 and on GCC, you could do this:

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

It's called ranged initialization and is a GCC-only extension.




回答4:


The initialization list for vector is supported from C++0x. If you compiled with C++98

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



回答5:


You can do that with std::vector constructor:

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

Which takes count and value to be repeated.

If you want to use initializer lists you can write:

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



回答6:


can you post what you are doing

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

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


来源:https://stackoverflow.com/questions/10237751/can-i-initialize-an-stl-vector-with-10-of-the-same-integer-in-an-initializer-lis

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!