#include #include#includeusing namespace std;
void main01()
//演算法和迭代器能無縫連線
int num1 = count(v1.begin(), v1.end(), 3);
cout << num1 << endl;
}//容器裝元素
class teacher
;void main02()
}//容器裝指標
void main03()
}void main()
#define _scl_secure_no_warnings
#include#include#includeusing namespace std;
void main21()
void main22()
} catch (...)
for (string::iterator it = s1.begin(); it != s1.end(); it++)
try }
catch (...)
}//字元指標的string的轉換
void main23()
; s1.copy(buf1, 3,0);//只給你copy3個字元,不會變成c風格的字串。從0的位置開始拷貝
cout << buf1 << endl;
}//字串的連線
void main24()
//字串的替換和查詢
void main25()
int offindex2 = s1.find("bmw", 0);
while (offindex2 != string::npos)
cout << s1 << endl;
}//刪除字元
void main26()
cout << s1 << endl;
s1.erase(s1.begin(), s1.end());//全部刪除
cout << s1 << s1.length() << endl;
s1.insert(0, "aaa");//在頭部插入aaa
s1.insert(s1.length(), "ccc");//在尾部插入ccc
cout << s1 << endl;
}//轉換大小寫
void main27()
void main()
vector
#include#includeusing namespace std;
void main31()
}//vector初始化
void main32()
void printv(vectorv)
//vector的遍歷
void main33()
//for (int i = 0; i < 10; i++)
// printv(v1);
}void main34()
//迭代器
// 1 3 5
//begin() end()
//當it==v1.end()的時候 說明這個容器已經遍歷完畢
//迭代器的種類
//typedef typename _mybase::iterator iterator;
//typedef typename _mybase::const_iterator const_iterator;//唯讀迭代器
////typedef _std reverse_iteratorreverse_iterator;//反向迭代器
//typedef _std reverse_iteratorconst_reverse_iterator;
void main35()
for (int i = 0; i < v1.size(); i++)
//vector的逆向遍歷
for (vector::reverse_iterator rit = v1.rbegin(); rit != v1.rend(); rit++) }
//vector的刪除
void main36()
//區間刪除
v1.erase(v1.begin(), v1.begin() + 3);
printv(v1);
//指定位置刪除
v1.erase(v1.begin() + 1);
cout << endl;
printv(v1);
//指定值刪除
v1[0] = 100;
v1[5] = 100;
cout << endl;
printv(v1);
for (vector::iterator it = v1.begin(); it != v1.end();)
else
}cout << endl;
printv(v1);
}void main()
deque雙向容器
#include#include#includeusing namespace std;
void printd(dequed)
}void main41()
else
cout << "-33不存在!" << endl;
}void main()
stack
#include#includeusing namespace std;
//先進後出
void main51()
cout << "棧的大小為:" << s.size() << endl;
//出棧
while (!s.empty()) }
class teacher
};void main52()
}void main53()
}void main()
queue
#include#includeusing namespace std;
//queue先進先出
void main61()
}class teacher
};void main62()
}void main63()
}void main()
list
#include#includeusing namespace std;
void main71()
cout << "插入之後的大小" << l.size() << endl;
list::iterator it = l.begin();
while (it != l.end())
cout << endl;
//list不能隨機訪問
it = l.begin();
it++;
it++;
it++;
//it = it + 5;//不支援隨機訪問容器
l.insert(it, 100);
for (list::iterator it = l.begin(); it != l.end(); it++) }
//結論:鍊錶的節點index序號是從0號位置開始
// 在3號位置插入元素,讓原來的3號位置程式設計4號位置,4號位置變為5號位置
void main72()
cout << "插入之後的大小" << l.size() << endl;
list::iterator it1 = l.begin();
list::iterator it2 = l.begin();
it2++;
it2++;
it2++;
for (list::iterator it = l.begin(); it != l.end(); it++)
cout << endl;
l.erase(it1, it2);//左閉右開
for (list::iterator it = l.begin(); it != l.end(); it++)
l.insert(l.begin(), 100);
l.insert(l.begin(), 100);
l.insert(l.begin(), 100);
cout << endl;
for (list::iterator it = l.begin(); it != l.end(); it++)
l.remove(100);
cout << endl;
for (list::iterator it = l.begin(); it != l.end(); it++) }
void main()
priority_queue
#include#include#includeusing namespace std;
void main81()
p3.push(11);
p3.push(55);
p3.push(22);
p3.push(33);
cout << "p3的隊首元素為:" << p3.top() << endl;
cout << "p3的大小為:" << p3.size() << endl;
//出隊
while (p3.size() > 0) }
void main()
stl容器之順序容器
stl容器分為順序容器和關聯容器 其中順序容器最常用的由vector,list,queue 1.vector vector 向量容器,可以看作變長陣列,長度可根據需要自行變化。使用的標頭檔案 include 定義方式 vector陣列名 vectorar 訪問容器內資料的方式和普通陣列相同,可以用a...
STL學習 順序容器
我以 vector 為例,總結一下 stl順序容器的基本使用。vector 是順序容器,它在很多方面類似於我們通常使用的陣列。但是它比陣列具有很多很好的特性。它使用安全,具有陣列所不具備的自增長的特性,使得 vector 在現代軟體設計中佔據重要地位。本講分五個部分,分別是初始化 迭代器 容器訪問 ...
STL順序容器 vector
vector是乙個線性順序結構。相當於陣列,但其大小可以不預先指定,並且自動擴 展。它可以像陣列一樣被操作,由於它的特性我們完全可以將vector 看作動態數 組。在建立乙個vector 後,它會自動在記憶體中分配一塊連續的記憶體空間進行資料 儲存,初始的空間大小可以預先指定也可以由vector 預...