• (C/C++学习)1.STL之vector容器


    说明:vector是C++中一个的容器类,它用于存放类型相同的元素,利用成员函数及相关函数可以方便的对元素进行增加或删除,排序或逆序等等。一个 vector 的容量(capacity)永远大于或等于其大小(size),一旦容量等于大小,便是满载,下次再有新增元素,整个 vector 容器就得重新申请一块更大的连续容量空间(一般是两倍原来容量大小)来存储所有的元素(包括原有的和新增的),然后原来的空间被释放

    注意vector是一个动态数组,可以动态增加数组的大小(size)。所谓动态增加大小,并不是在原空间之后续接新空间(因为无法保证原空间之后尚有可配置的空间),而是一块更大的内存空间,然后将原数据拷贝到新空间,并释放原空间。因此,对 vector 的任何操作,一旦引起空间的重新配置,原空间的地址就变了。

    1.包含的头文件:#include<vector>

    2.构造函数

    1 vector<T> v; //默认构造函数,T是数据类型
    2 vector<T> v1(v.begin(),v.end()); //将容器v参数区间的元素拷贝到容器v1
    3 vector<T> v2(n,elem); //构造函数将n个elem元素赋给v2
    4 vector<T> v3(v1); //拷贝构造函数
    5 vector<int> v4{1,2,3,4,5}; //指定元素初始化容器
    6//用数组初始化一个vector容器
    7 int arr[] = {1,2,3,4};
    8 vector<int> v4(arr,arr+sizeof(arr)/sizeof(int));

    3.常用赋值函数

    1 v.assign(v1.begin(),v1.end()); //将v1固定区间内的元素拷贝赋值给v
    2 v.assign(n,elem); //将n个elem元素拷贝赋值给v
    3 v = v1; //将v1赋给v(重载了等号操作符)
    4 v.swap(v1); //将两个容器的元素进行交换

    4.size操作

    1 v1.size(); //返回v1中的元素个数
    2 v1.empty(); //判断v1是否为空
    3 v1.resize(num,elem);
    //重新指定容器的长度为num,若容器变长,则以elem填充新位置,反之末尾元素被删除(第二个参数有默认值)
    4 v1.capacity(); //容器的容量 5 v1.reserve(len); //容器预留len个元素容量,预留位置不初始化,元素不可访问,size为0

    5.数据存取

    1 v1.at(i); //返回索引i所指的数据,越界抛异常
    2 v1[i]; //返回索引i所指的数据,越界报错
    3 v1.front(); //返回容器的第一个数据
    4 v1.back(); //返回容器的最后一个数据

    6.插入和删除

    1 v1.insert(pos,count,ele); //迭代器指向位置pos插入conut个元素ele
    2 v1.push_back(); //尾部插入元素ele
    3 v1.pop_back(); //删除尾部元素
    4 v1.erase(pos1,pos2); //删除迭代器pos1到pos2之间的元素
    5 v1.erase(pos); //删除迭代器指向的元素
    6 v1.clear(); //删除容器中的所有元素
  • 相关阅读:
    第一次离职
    代码人生
    Array.Sort()实现细节和效率
    步入正轨
    2013,冲刺、加油!!!
    Struts2 OGNL 字符串自定义转化对象细节
    Struts2 输入格式自动校验的一些注意事项
    MySQL 5.7.17 Windows安装和启动
    关于Hibernate 5 和 Hibernate 4 在创建SessionFactory的不同点分析(解决 org.hibernate.MappingException: Unknown entity: xx类报错问题)
    Struts2 OGNL 自动转换Date类型的一些注意事项
  • 原文地址:https://www.cnblogs.com/tuihou/p/9691199.html
Copyright © 2020-2023  润新知