@講師張文傑—Geekband
1.概觀
- 将型别以一種 to-be-specified-later 方式給出
- 通過模闆以及相關性質表現的
2.Traits
…實際調試一遍
3.疊代器
- 分離算法和容器
4.容器
容器的種類
1.vector
2.list
3.deque
4.set and Multiset
5.Map and MultiMap
6.stack
7.Queue
1.vector
- 能夠存放任意型别的動态數組
- 一段位址連續的空間
- 動态的空間調整
- 向vector添加元素
//vector的聲明
#include<vector>
int main(){
std::vector v;
}
push_back函數
向vector添加元素的方法,調用該函數,将元素加至其尾部
std::vector<std::wstring> v3;
for(std::size_t i=;i<;i++)
{
std::wstringstream wss;
wss<<TEXT("String[")<<i<<TEXT("]"));
v3.push_back(wss.str());
}
empty()函數
size()函數
std::vector<std::wstring> v3;
bool isEmpty = v3.empty();
int array[] = {,,,,,,,,,};
std::vector<int> v(array,array+);
std::size Vsize = v.size();
通路vector中的元素
vector::at()
vector:operator[]
std::vector<std::wstring> v;
v.reserve();
for(std::size_t i=;i<;i++){
std::wstringstream wss;
wss<<TEXT("String[")<<i<<TEXT("]");
v.push_back(wss.str());
}
try{
std::wstring wsz1 = v[];
std::wstring wsz2 = v.at();
}
catch(const std::exception& e){
Console::WriteLine(ex.what());
}
C++裡盡量少用try-catch,開銷大。
2.Deque
3.List
- 調試運作檔案—test_fx
- 使用list,必須用include,并通過std命名空間去通路
建立List
std::list l; 建立一個T型别的空list
std::list l(n);建立一個容量是n的T型别的list
std::list l(n,x); 建立一個容量是n的T型别的list,初始化為x
std::list copyOfList(l); 建立一個已有list的拷貝
std::wstring array[] = {TEXT(“Str-1”),TEXT(“Str-2”),TEXT(“Str-3”)};
std::list l(array,array+3);
通過一個數組建立一個list
常見操作
- l.remove_if(ContainsString(TEXT(“C++”)));
- //remove string that contains “C++”