4-Vector

vector是定义在C++标准模板库,它是一个多功能、能够操作多种数据结构和算法的模板类(关于模板类我们后面会介绍,如何创建自己的模板类)。vector是一个容器,能够像容器一样存放各种类型的对象。vector是一个能够存放任意类型的动态数组,能够增加和删除元素,可以完全替代C语言风格的动态数组,由于vector能够自动的管理内存,我们不需要考虑内存的增长和释放、具有很好的安全性。

1.包含头文件 ,使用命名空间

1
2
#include<vector>
using namespace std;

2.定义和声明vector对象

1
2
3
4
5
vector<T> v1;  //T是一种数据类型,系统定义的或者你自己定义的类,但是不能是引用,T类型的,但是没有元素
vector<T> v2(v1); //v1与v2必须是同类型,等同于赋值运算符,两个变量的元素一样
vector<T> v2 = v1; //同上
vector<T> v3(n, value) //n个重复元素 ,每个元素值都是value
vector<T> v4(n) //n个对象,对象的值根据类型不同而不同,自动初始化,如果是int类型,就被初始化为0;如果是字符串,就被初始化为空的字符串

3.向vector添加元素和删除元素

1
2
push_back(value); //在最后面添加一个元素
pop_back(value); //将最后面的元素删除,不会返回元素的值

4.对vector中的元素进行访问

1
2
3
4
V1[n]; //下标访问法,0~n~size-1
V1.at[n]; //下标访问法,0~n~size-1,使用at访问更加安全一些,因为at访问的时候将在运行期间检查非法的索引,这种检查的代价是运行时间更长
front(); //返回最前面的一个元素
back(); //返回最后面的一个元素

5.其他vector操作

1
2
3
4
Size()  // 返回数组的长度
empty() // 判断数组是否为空
== //判断相等
比较运算符:>= <=

6.Vector的实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream> 
#include <string>
#include <vector>
using namespace std;
int main() {
string str;
vector<string> v;
while (getline(cin, str)) {
if (str == "q")
{
break;
}
v.push_back(str);
}
int nChars = 0;
for (int i = 0; i < v.size(); i++)
{
string s = v[i];
nChars += s.size();
}
cout << "TotalLines:" << v.size() << "\t" << "TotalChars:" << nChars << endl;
for (int i = 0; i < v.size(); i++)
{
string s = v[i];
cout << i << "\t" <<s<<'\t'<< s.size() << endl;
}
return 0;
}
打赏

请我喝杯咖啡吧~

支付宝
微信