zoukankan      html  css  js  c++  java
  • C++ STL(二)vector的用法

    ##### vector的定义

    ```
    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    struct stu{
    int age;
    };
    class xx{
    string s;
    };
    void vectorDefine(){

    vector<int> vec;
    vector<struct stu> vec2;
    vector<xx> vec3;
    vector<string> vec4;
    vector<int*> vec5;
    }
    ```
    ##### vector的构造

    ```
    void vectorConstructor(){
    vector<int> vec;
    vector<int> vec1(5);//5个元素全是0
    vector<int> vec2(5,9);//5个9
    vector<int> vec3(vec2);//拷贝构造,类型一定要一样
    vector<int> vec4(vec2.begin(),vec2.end());//迭代器构造
    for(int i=0;i<5;i++){//循环遍历
    cout<<vec4[i];
    }
    }
    ```
    ##### vector的容量
    - vec.capacity();
    **用法**
    vector初始容量为0
    给初始容量为x
    进行vec.push_back(T t)操作后,容量在vs变为1.5倍
    在devC++变为2倍
    - vec.reserve(int i); 改变容量
    - vec.size(); 求到vec的大小
    - vec.resize(); 重新设置元素个数,容量不变

    ##### vector的操作
    **增加**
    - vec.push_back(T t); 在尾部增加一个元素
    - vec[int index]; 输出index位置的元素
    - vec.at(int index); 输出index位置的元素
    - vec.back(); 返回尾巴元素
    - vec.insert(iterator i,T t);在iterator处插入元素t
    - vec.insert(iterator i,int num.T t)在iterator处插入num个元素T

    **删除**
    - vec.pop_back(); 删除尾巴元素
    - vec.erase(iterator i); 删除iterator位置的元素
    - vec.clear(); 清除所有元素

    ##### 算法
    **sort**
    sort(iterator begin,iterator end) 从小到大排序
    sort(iterator begin,iterator end,greater<int>()) 从大到小

    **for_each**
    for_each(iterator begin,iterator end,void operatorFun())
    进行每个元素操作的功能

    **random_shuffle**
    srand((unsigned int)time(NULL));
    random_shuffle(iterator begin,iterator end);
    随机打乱顺序

    ```
    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <ctime>
    using namespace std;
    int main(int argc, char** argv) {
    vector<int> vec;
    vec.push_back(5);
    vec.push_back(10);
    vec.push_back(15);
    srand((unsigned int)time(NULL));
    random_shuffle(vec.begin(),vec.end());
    for(int i=0;i<vec.size();i++){
    cout<<vec[i]<<endl;
    }
    return 0;
    }
    ```

  • 相关阅读:
    使用Visual C++进行串口通信编程
    预处理器进行调试
    怎样用C#实现完整文档打印功能
    如何能练就成一个卓越的程序员
    C# 实现Epson热敏打印机打印 Pos机用
    HARD HARD STUDY
    同步文本框内容的JS代码
    导出Excel之判断电脑中office的版本
    js设置IE检查所存网页的较新版本之‘每次访问此页时检查’
    批量更新sql表某字段范围内的随机数
  • 原文地址:https://www.cnblogs.com/littlepage/p/10989609.html
Copyright © 2011-2022 走看看