STL這部分推薦直接看《C++ primer》的9到11章內(nèi)容,有非常詳細(xì)的接口列表,還有很多例子。附錄里還有常用的泛型算法,適合經(jīng)??匆幌?/p>
在南州晴隆等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,南州晴隆網(wǎng)站建設(shè)費(fèi)用合理。
底層數(shù)據(jù)結(jié)構(gòu):動態(tài)開辟的數(shù)組,每次以原來空間大小的2倍進(jìn)行擴(kuò)容的
vector
初始的元素放在隊列的中間,方便后續(xù)添加元素。外部有一個mapper保存隊列,隊滿的時候會對mapper擴(kuò)容,隊列放在擴(kuò)容后的mapper的sizeof(原來mapper)/2的位置。
deque容器:
list容器:
vecotr和deque之間的區(qū)別?
vector和list之間的區(qū)別?
unordered_set:
unordered_map:
map的operator[]重載有兩個功能:一是查詢,二如果key不存在,會插入一對數(shù)據(jù)
unordered_map mp1;
mp1.insert(make_pair(12,"asf"));//生成pair類型
mp1.insert({123,"asfsaf"});
底層是紅黑樹結(jié)構(gòu)。
自定義類型如何在有序容器中排序:要在自定義類型中提供小于運(yùn)算符的重載
函數(shù)對象就是C語言里的函數(shù)指針
把有operator()小括號運(yùn)算符重載函數(shù)的對象,稱作函數(shù)對象或者稱作仿函數(shù)。
好處:
template
bool mygreater(T a, T b) {
return a > b;
}
template
bool myless(T a, T b) {
return a < b;
}
template
class Myless{//函數(shù)對象
public:
bool operator()(T a,T b){
return a
bool compare(T a, T b, Compare comp) {//使用函數(shù)指針或者函數(shù)對象調(diào)用前面定義的兩個函數(shù)
return comp(a, b);//在使用函數(shù)指針的時候無法聲明為inline函數(shù),效率低
}
int main() {
cout << compare(10, 30, mygreater)<())<
函數(shù)對象的一些其他用法:用于priority_queue和set:
priority_queue,Mygreater> queue1;
priority_queue queue2;
for(int i=0;i<20;i++){
queue1.push(rand()%100);
queue2.push(rand()%100);
}
for(int i=0;i<20;i++){
cout< set1;
set> set2;
for(int i=0;i<20;i++){
set1.insert(rand()%100);
set2.insert(rand()%100);
}
for(int a:set1){
cout<