First
定義和初始化vector對象 (主要是()與{ }的區別)
定義 | 含義 |
---|---|
vector<T> v1 | v1是一個空vector,它潛在的元素是T類型,執行默認初始化 |
vector<T> v2(v1) | v2中包含有v1所有元素的副本 |
vector<T> v2=v1 | 等價于v2(v1) |
vector<T> v3(n,val) | v3包含了n個重復的元素,每個元素的值都是val |
vector<T> v4(n) | v4包含了n個重復地執行了值初始化的對象 |
vector<T> v5{a,b...} | v5包含了初始值個數的元素,每個元素被賦予相應的初始值 |
vector<T>v5={a,b..} | 同上 |
vector支持的操作
表達式 | 含義 |
---|---|
v.empty() | 如果v中不含任何元素,返回true,否則返回false |
v.size() | 返回v中元素的個數 |
v.push_back(t) | 向v的末尾添加一個值為t的元素 |
v[n] | 返回v中第n個位置上元素的引用 |
v1=v2 | 用v2中的元素替換v1中的元素 |
v1={a,b...} | 用列表中元素的拷貝替換v1中的元素 |
v1==v2 or v1!=v2 | 當且僅當它們的元素數量相同且對應位置的元素值都相同時才相同 |
<,<=,>,>= | 以字典順序進行比較 |
一些注意的地方
vector<int> v{1,2,3,4,5,6,7,8,9};
for(auto &i : v) //對于v中的每一個元素(注意:i是一個引用)
i*=i;
for(auto i : v)
cout<<i<<" ";
cout<<endl;
//for用C11的標準時,注意要想對數組或者容器(嚴格來說vector并不是一個容器,而是一個類模板)
//中的元素進行修改 i 應用引用的方式使用。
//以10分為一個分數段 統計成績的數量0~9,10~19,...,90~100
vector<unsigned>scores(11,0) //11個分數段,全部初始化為0
unsigned grade;
while(cin>>grade){
if(grade<=100)
++scores[grade/10];
}
最后文章讀到這里的你,有什么好的想法,建議,歡迎在評論區留言。
---小學館