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 更高級更好用,一開始的時候見到這個容器的概念,確實懵逼,但當我看清楚他一點點的本質之後就能有所瞭解了。