c++ 標準模板庫的核心包括以下三個元件:
元件描述
容器(containers)
容器是用來管理某一類物件的集合。c++ 提供了各種不同型別的容器,比如 deque、list、vector、map 等。
演算法(algorithms)
演算法作用於容器。它們提供了執行各種操作的方式,包括對容器內容執行初始化、排序、搜尋和轉換等操作。
迭代器(iterators)
迭代器用於遍歷物件集合的元素。這些集合可能是容器,也可能是容器的子集。
這三個元件都帶有豐富的預定義函式,幫助我們通過簡單的方式處理複雜的任務。
向量(vector)是乙個封裝了動態大小陣列的順序容器(sequence container)。跟任意其它型別容器一樣,它能夠存放各種型別的物件。可以簡單的認為,向量是乙個能夠存放任意型別的動態陣列。
建立vector
#include // vector建構函式用法:
std::vectorfirst; // 建立int型別空vector
std::vectorsecond (4,100); // 建立乙個int型別vector,初始包含4個成員,均為100
std::vectorthird (second.begin(),second.end()); // 遍歷複製second的成員
std::vectorfourth (third); // 複製third
【iterators】
begin() // return iterator to beginning (public member function )
end() // return iterator to end (public member function )
rbegin() // return reverse iterator to reverse beginning (public member function )
rend() // return reverse iterator to reverse end (public member function )
cbegin() // return const_iterator to beginning (public member function )
cend() // return const_iterator to end (public member function )
crbegin() // return const_reverse_iterator to reverse beginning (public member function )
crend() // return const_reverse_iterator to reverse end (public member function )
【capacity】
size() //return size (public member function )
max_size() // return maximum size (public member function )
resize() // change size (public member function )
capacity() // return size of allocated storage capacity (public member function )
empty() // test whether vector is empty (public member function )
reserve() // request a change in capacity (public member function )
shrink_to_fit() // shrink to fit (public member function )
【獲取成員】
operator // access element (public member function )
at() // access element (public member function )
front() // access first element (public member function )
back() // access last element (public member function )
data() // access data (public member function )
【修改vector】
assign() // assign vector content (public member function )
push_back() // add element at the end (public member function )
pop_back() // delete last element (public member function )
insert() // insert elements (public member function )
erase() // erase elements (public member function )
swap() swap content (public member function )
clear() // clear content (public member function )
emplace() // construct and insert element (public member function )
emplace_back() // construct and insert element at the end (public member function )
【allocator】
get_allocator() // get allocator (public member function )
vector的初始化,大小,插入等
#include #include using namespace std;
int main()
// 顯示 vec 擴充套件後的大小
cout << "extended vector size = " << vec.size() << endl;
// 訪問向量中的 5 個值
for(i = 0; i < 5; i++)
// 使用迭代器 iterator 訪問值
vector::iterator v = vec.begin();
while( v != vec.end())
return 0;
}
下標訪問: vec[1]; //並不會檢查是否越界
at方法訪問: vec.at(1); //以上兩者的區別就是at會檢查是否越界,是則丟擲out of range異常
訪問第乙個元素: vec.front();
訪問最後乙個元素: vec.back();
返回乙個指標: int* p = vec.data(); //可行的原因在於vector在記憶體中就是乙個連續儲存的陣列,所以可以返回乙個指標指向這個陣列。這是是c++11的特性。
結合c11語法特性的多種遍歷方式
#include #include using namespace std;
int main(int argc, char* ar**)
; showvec(vallist);
return 0;
}
【遍歷】
void showvec(const vector& vallist)
}
void showvec(const vector& vallist)
}
void showvec(const vector& vallist)
}
void showvec(const vector& vallist)
}
void showvec(const vector& vallist)
}
一文弄懂Hbase基本架構
7 hbase的容錯性 注 一張hbase表在剛剛建立的時候,預設只有乙個region。所以多有關於這張表的請求都被路由到同乙個region server,不管集群中有多少region server。這也就是為什麼hbase表在剛剛建立的階段不能充分利用整個集群的吞吐量的原因。如果想開始就用到集群的...
一文弄懂Nginx最核心的配置
在日常的工作中,跟nginx打交道的時候挺多的。之前對location的匹配規則是一知半解的,為了搞明白location是如何匹配的,查了些資料總結此文。希望能給大家帶來幫助。location uri location name語法規則很簡單,乙個location關鍵字,後面跟著可選的修飾符,後面是...
一文弄懂HTTP請求如何建立TCP連線
摘自詳解tcp連線的 三次握手 與 四次揮手 上 客戶端與伺服器之間資料的傳送和返回的過程當中需要建立tcp連線。由於tcp不存在連線的概念,只存在請求和響應,請求和響應都是資料報,它們之間都是經過由tcp建立的乙個從客戶端發起,伺服器接收的類似連線的通道,這個連線可以一直保持,http請求是在這個...