Thumbnail: cpp

vector

by on under c++
1 minute read

定义和初始化 vector 对象

虽然大多数时候都是用 push_back() 来初始化的,这里贴两个值得注意的初始化方法记一下

    vector<T> v1;
    vector<T> v2(v1);   //复制构造
    vector<T> v2 = v1;
    vector<T> v3(n,val);    //v4 包含了 n 个元素,每个都是 val;
    vector<T> v4(n);        //v4 包含了 n 个重复执行了值初始化的对象
    vector v5{a,b,c}..;     //列表初始化

    vector<int> v1(10,1);   //v1 有 10 个元素, 每个的值都是 1
    vector<string> v2{10,1}; //v2 有 2 个元素,10, 1
    vector<string> v3("hi"); //error, 不能用字符串字面值来构建 vector 对象
    vector<string> v4{10};  //v4 有 10 个默认初始化元素
    vector<string v5{10,"hi"}; //v5 有 10 个 "hi"

vector 添加元素

   vector<int> v;
   for(int i = 0;i != 100; ++i) //这里用 != 表示终止条件更合适,对于很多 C++ 模板而言并没有提供 > 或者 < 的功能
      v.push_back(i);

   string words;
   vector<string> text;
   while(cin>>words)
      text.push_back(words);

vector 可以用下标查看,但是不能用下表添加元素,不要用下标访问未添加元素 vector<T>size_typevector<T> size_type


c++