zoukankan      html  css  js  c++  java
  • 《c++ primer》3.3 vector 类型小结

    1. 头文件

    #include<vector>
    using std::vector;

    2. 声明

    vector是一个类模板,vector中的元素是什么类型,需要在<>内说明:

    vector<int> ivec;
    vector<Sales_item> Sales_vec;
    vector<vector<string>> file; // 元素为vector, 所以是一个string元素的矩阵

    但元素不能是别名(reference)

    3. 初始化

    vector<int> ivec;
    vector<int> ivec2(ivec);
    vector<int> ivec3 = ivec;
    vector<string> articles = {"a", "an", "the"};
    vector<int> ivec(10,-1); // 10个元素,每个都是-1
    vector<int> ivec(10); // 10个元素,值都是0。如果不是int而是其他class,没有默认初始值,则无法这样定义

    为了更包容,他们还允许定义成 vector<string> v8{10, "hi"},但我们只需要记住并使用上面的定义&初始化方式。

    4. 追加元素

    vector有一个成员函数 push_back,可以在列表最末尾添加元素

    vector<int> v2;
    for(int i=0;i<100;i++)
        v2.push_back(i);

    vector可以有效地增加长度,一般比确定长度还要有效。

    range for 的循环体不能改变 range for 条件语句中的 size

    5. size_type

    类似于string中关于size_type的说明,而且使用的时候必须带上成员类型

    vector<int>::size_type // ok
    vector::size_type //错误

    6. vector 操作

    v.empty() // true if v is empty; false else.
    v.size()  
    v.push_back(t)
    v[n]
    v1=v2
    v1={a,b,c,...}
    v1==v2
    v1!=v2
    <,<=,>,>=  //仅当成员类型定义了<,<=,>,>=时可以使用
  • 相关阅读:
    限制泛型可用类型
    泛型的常规用法(声明两个类型)
    一个类似于金字塔的图形
    Fibonacci数
    快来秒杀我
    奇偶数分离
    Background
    Financial Management
    HangOver
    Binary String Matching
  • 原文地址:https://www.cnblogs.com/luyi07/p/11633338.html
Copyright © 2011-2022 走看看