您的位置:首页 > 编程语言

泛型编程

2015-08-31 18:55 134 查看
@讲师张文杰—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=0;i<10;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[] = {1,2,3,4,5,6,7,8,9,10};
std::vector<int> v(array,array+10);
std::size Vsize = v.size();


访问vector中的元素

vector::at()

vector:operator[]





std::vector<std::wstring> v;
v.reserve(10);
for(std::size_t i=0;i<3;i++){
    std::wstringstream wss;
    wss<<TEXT("String[")<<i<<TEXT("]");
    v.push_back(wss.str());
}

try{
    std::wstring wsz1 = v[5];
    std::wstring wsz2 = v.at(5);
}
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++”











内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: