做百度推广设置网站统计,微信调查问卷小程序怎么做,seo关键词排名优化方法,seo建站教程文章目录 #x1f6a9;前言1、vector容器的概述2、vector构造函数的使用3、vector遍历方式4、vector中Capacity相关接口5、vector插入和删除的使用 #x1f6a9;前言 前面描述了字符串string的相关知识#xff0c;接下来描述第二个常用容器——vector#xff0c;即顺序表。… 文章目录 前言1、vector容器的概述2、vector构造函数的使用3、vector遍历方式4、vector中Capacity相关接口5、vector插入和删除的使用 前言 前面描述了字符串string的相关知识接下来描述第二个常用容器——vector即顺序表。 1、vector容器的概述
简单来说vector相当于C中的数组数组中可以用的操作在vector中都有相应的接口并且具有数组没有的功能基于数组的数据结构实现自动管理内存的方便灵活的序列容器。
2、vector构造函数的使用 首先了解vector可以支持的构造函数有哪些下面是所具有的构造函数 //构造函数的使用
void Test_vector_1()
{//构造一个空的容器vectorint v1;//构造n个值为val的容器vectorint v2(8,6);//使用迭代器构造一个容器,可以改变范围大小vectorint v3(v2.begin(), --v2.end());
}
调试结果
3、vector遍历方式 在vector中和string遍历方式一样的都包括下标访问、迭代器以及范围for访问接下来使用一下这些访问方式 //遍历方式的使用
void Test_vector_2()
{//创建一个大小为10,值为6的容器vectorint v1(10,6);//下标访问for (int i 0; i v1.size(); i){cout v1[i] ;}cout endl;//迭代器vectorint::iterator it v1.begin();while (it ! v1.end()){cout *it ;it;}cout endl;//范围for遍历for (auto n : v1){cout n ;}cout endl;
} 4、vector中Capacity相关接口 通过reserve接口来了解 //Capacity相关接口
void Test_vector_3()
{vectorint v1(10,1);//先看原始空间大小cout _size: v1.size() endl;cout _capacity:v1.capacity() endl;//申请更大空间v1.reserve(30);cout 预留大于空间的空间变大 endl;cout _size: v1.size() endl;cout _capacity:v1.capacity() endl;cout 预留比空间小的空间不会缩容的 endl;v1.reserve(20);cout _size: v1.size() endl;cout _capacity: v1.capacity() endl;
}resize()接口的作用 主要有两种①resize的个数小于原本数据个数的时候就相当于删除后面的数据内容在vs上空间不会缩容缩容和不缩容得看编译器平台②若大于原本数据个数的时候就是插入当空间不够的时候就会扩容 //resize()
void Test_vector_3()
{ vectorint v1(10, 1);//先看原始空间大小cout _size: v1.size() endl;cout _capacity: v1.capacity() endl;for (auto n : v1){cout n ;}cout endl endl;cout 大于原有数据个数的时候超过原有空间大小 endl;v1.resize(15,2);cout _size: v1.size() endl;cout _capacity: v1.capacity() endl;for (auto n : v1){cout n ;}cout endl endl;cout 小于原有数据个数的时候不会缩容: endl;v1.resize(5);cout _size: v1.size() endl;cout _capacity: v1.capacity() endl;for (auto n : v1){cout n ;}cout endl endl;
}5、vector插入和删除的使用 插入接口主要是push_back()和insert()删除就是erase(); //插入和删除
void Test_vector_4()
{vectorint v1;cout size: v1.size() endl;cout capacity: v1.capacity() endl;cout endl;//尾插v1.push_back(1);v1.push_back(2);v1.push_back(3);v1.push_back(4);v1.push_back(5);v1.push_back(6);v1.push_back(7);v1.push_back(8);v1.push_back(9);v1.push_back(10);v1.push_back(11);cout 尾插 endl;for (auto n : v1){cout n ;}cout endl;cout size: v1.size() endl;cout capacity: v1.capacity() endl;cout endl;//固定插入cout 首部插入 endl;v1.insert(v1.begin(),10);for (auto n : v1){cout n ;}cout endl endl;cout 中间位置插入 endl;v1.insert(v1.begin()4, 666);for (auto n : v1){cout n ;}cout endl endl;cout erase支持某一位置删除和区间删除 endl;cout 删除第一个元素:endl;v1.erase(v1.begin());for (auto n : v1){cout n ;}cout endl endl;cout 删除最后一个元素: endl;v1.erase(v1.end()-1);v1.erase(v1.begin());for (auto n : v1){cout n ;}cout endl endl;cout 区间删除 endl;v1.erase(v1.begin()3,v1.begin()5);for (auto n : v1){cout n ;}cout endl endl;cout 清空接口,不改变空间clear() endl;v1.clear();cout size: v1.size() endl;cout capacity:v1.capacity() endl;cout endl;
}常用常用接口就描述到此不常见的可以通过下面链接了解 vector容器官方文档介绍