C++ 之标准库类型—— vector 容器
标准库类型vector表示对象的集合,其中所有对象的的类型都相同。集合中的每对象都有一个与之对应的索引,索引用于访问对象。因为 vector “容纳”着其他对象,所以他也常被称为容器(container).
注意需要有包含有头文件,如果做上了using 就更好了,如下:
#incldue<vector>
using std::vector;
说实话,一开始的时候,我接触到这个vector这个概念是完全懵逼的,再看书上的实例也是晕晕的,但是等我做完课后题后,突然就恍然大悟了。
定义和初始化vector 对象
dog | vector支持的操作 |
---|---|
v.empty() | 若其中不含有任何元素,返回真,否则假 |
v.size() | 返回其中个数 |
v.push_back(t) | 向V的尾端添加元素 |
v[n] | 返回第n个位置上的值的引用 |
v1 =v2 | 用V2中元素拷贝替换v1中的元素 |
v1 = {a,b,c…} | 用列表中的元素拷贝替换V1中的元素 |
v1 == v2 | 数量相同 对应位置相同 布尔型 |
v1 != v2 | 同上 布尔型 |
<, <=,>,>= | 以字典序进行比较 |
以下代码演示,vector内的,定义,声明,索引(),添加(push_back)
//作用为向容器中添加字符串,遇“123”停止,然后打印他们,在进行所有字符串的遍历,转化为大写字母
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main ()
{
string str;
vector<string> svec;
while (cin >> str && str != "123"){
svec.push_back(str); //向容器中添加元素的时候不能使用下标是的形式
}
for(int i=0; i< svec.size(); i++){
cout << "those are " <<svec[i] << endl;
}
for (auto ptr : svec ){
for (auto &c : ptr){
c = toupper(c);
}
cout << ptr <<endl;
}
}
私以为,这个vector 给我的感觉就像是里面的动态数组,但与之相比,vector 更高级更好用,一开始的时候见到这个容器的概念,确实懵逼,但当我看清楚他一点点的本质之后就能有所了解了。