开发工具与关键技术: Visual Studio / C++
作者:何文涛
撰写时间:2019-7-15
C++中的Container(容器)可以分为两类,分别是序列式容器和关联式容器。
序列式容器(Sequence containers):
每个元素都有固定的位置,都是取决于插入时机和地点,和元素值无关。
序列式容器分别有vector、deque、list
关联式容器(Associated containers):
元素位置取决于特定的排序准则,和插入循序无关。
序列式容器分别有set、multiset、map、multimap
我要细说的容器序列式容器中的Vectors容器:
Vectors容器的特点:
1.将元素置于一个动态数组中加以管理。
2.可以随机存取元素(用索引直接存取)。
3.数组尾部添加或移除元素特别非常快速,但是在中部或者头部安插元素则比较慢。
Vectors容器案例:
容器的概念作用:
用来管理一组元素。
Vectors容器的概念图,由此可见在尾部安插或者移除是比较快速的。
头文件:
在使用Vectors容器之前,需要引用头文件vector。
#include
#include//Vectors容器的头文件
using namespace std;
引用头文件后才可以使用Vectors容器。
下面就举了个简单Vectors的例子:
#include
#include//Vectors容器的头文件
using namespace std;
同样,需要引用头文件vector。
void main()
{
vectorfind;//创建动态数组
for (int i = 1; i <= 10; i++)
{
find.push_back(i);//新增元素进数组
}
vector::iterator ifind;//迭代器
for (ifind = find.begin(); ifind != find.end(); ifind++)//遍历数组
{
cout << *ifind << ends; //输出数组里面的元素
}
cout << endl;
cout << “容器元素” << find.size() << endl;//输出容量
cout << “容器容量” << find.capacity() << endl;//输出容量}
}
使用容器之前首先定义Vectors容器的一个对象,其类型为int类型,并通过for循环来进行创建动态数组,新增元素的方法push_back(),并把变量i作为参数传进新增的方法里,再通过迭代器iterator定义的对象ifind来进行输出。
迭代器输出,通过一个for循环,迭代器对象进行调用begin方法,是指容器的头部,end方法则是尾部,然后对动态数组的每一个元素进行遍历,输出容器里面的元素。
最后还输出了容器里面的元素个数和容器容量。
输出可见,循环新增了10个元素进去,并且逐个输出,也输出了元素的个数以及容量,这里容量为13则是因为Vectors容器会多开辟几个容量。
若是元素达到超过13个的话,容器会自动开辟跟多的容量,随着元素的增多而增多,而开辟的容量则有一定的规律。