c++ 复合数据类型 vector

1,vector是啥?

是具有动态大小的数组,具有顺序。能够存放各种类型的对象。相比于固定长度的数组,运行效率稍微低一些,不过很方便。

2,咋用?

声明:

vector <int> vi;
//vector<类型>标识符
vector <int> vii(10);
//Vector<类型>标识符(最大容量)

常用方法:

#include "pch.h"
#include <algorithm>
using namespace std;

int main() {
    vector<int>vi;
    vi.push_back(1);
    vi.push_back(2);
    //向队列的最后添加数据,1和2

    vi.pop_back();
    //去掉队列的最后一个数据

    int vilen = vi.size();
    //队列的实际长度

    vi.clear();
    //清除队列中所有的数据

    vi.push_back(1);
    vi.push_back(2);
    vi.push_back(3);
    vi.push_back(4);
    //加点数据

    for (int i = 0; i < vilen; i++) {
        printf("%d\n", vi[i]);
    }
    //普通方法遍历队列输出内容

    vector<int>::iterator it;    //声明一个迭代器
    for (it = vi.begin(); it != vi.end(); it++) {
        printf("iterator  value is %d \n", *it);
    }
    //利用迭代器遍历队列

    for (auto itt : vi)
    {
        printf("%d\n", itt);
    }
    //c++11的新遍历方法,利用auto

    sort(vi.begin(), vi.end());    //sort 需要头文件 #include <algorithm>
    //把队列按照从小到大的顺序排序
    for (int i = 0; i < vi.size(); i++) {
        printf("%d\n", vi[i]);
    }
    reverse(vi.begin(), vi.end());
    //把队列按照从大到小的顺序排序
    for (int i = 0; i < vi.size(); i++) {
        printf("%d\n", vi[i]);
    }

    vector<vector<int> > obj;
    //定义一个二维数组,约等于python中的:[[1,2],[1,2],[1,2]]

    vector<vector<int> > obj(5, vector<int>(6));
    //这样也是可以的,语法不同而已,

    return 0;
}

3,队列支持的用法查询

1.push_back 在数组的最后添加一个数据

2.pop_back 去掉数组的最后一个数据

3.at 得到编号位置的数据

4.begin 得到数组头的指针

5.end 得到数组的最后一个单元+1的指针

6.front 得到数组头的引用

7.back 得到数组的最后一个单元的引用

8.max_size 得到vector最大可以是多大

9.capacity 当前vector分配的大小

10.size 当前使用数据的大小

11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值

12.reserve 改变当前vecotr所分配空间的大小

13.erase 删除指针指向的数据项

14.clear 清空当前的vector

15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)

16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)

17.empty 判断vector是否为空

18.swap 与另一个vector交换数据

猜你喜欢

转载自www.cnblogs.com/0-lingdu/p/12274278.html
今日推荐