C++语言中关于vector的初始化问题

2024-12-29 21:09:58
推荐回答(2个)
回答1:

代码

vector ivec {10, 11, 12}

用到了c++11的新特性,初始化列表,initialize_list


而vistual studio 2012并不支持c++11这一特性。


代码

vector ivec(10,-1);

正确,是因为 vector 存在这个版本的构造函数

explicit vector (size_type n, const value_type& val = value_type(),
                 const allocator_type& alloc = allocator_type());

回答2:

vector ivec={"a","an"};  VS VC不支持这种初始化!

以下方法可借鉴:

vector text(10);  //初始化大小为10,每个值均为0

vector text(10,1);  //初始化大小为10,每个值均为1

int array[10]={...};
vector text(array,array+10); //用array对vector进行初始化

如果是动态初始化,就用push_back(),例如:
ifstream infile("1.txt");
vectorvec;
string str;
while(infile>>str)
   vec.push_back(str);