给新手的STL教程(1)

来源:互联网 发布:淘宝怎么卡地区 编辑:程序博客网 时间:2024/06/08 16:55
// STL 包括 STL 算法,容器,工具类这些东西// 其中STL算法包括容器间排序,遍历,复制等// 工具类包括一些类声明,这些类在STL窗器中会用到// STL容器经常跟STL算法结合一块使用,这是很正常的// STL (standard template library) 容器包括 list,map,vector,set等,这里介绍一下其中几个容器类。// 之前应该了解一个泛型知识,如果不知道什么是泛型,搜一下就ok了。// string 这个东西竟然是C++ 标准库 中 STL的一部分,这个很惊人吧,以前用竟然都不知道!!#include <string>// string 在STL库里是个特殊的元素,创建一个对象只需要 直接 string variableName;就可以了,不需要添加尖括号因为它本身就是basic_string的一个<char>类型的泛型类// STL 算法头文件#include <algorithm>#include <iostream>void printAcharactor(std::string::value_type iter)// 用下边这个形式也是可以的,为什么呢?你去查查那个cplusplus_reference.chm string的这一项//void printAcharactor(char iter){    std::cout<<iter;}int main(){    // 那么这里演示一下    std::string string_1("Hello World!");    // 遍历 算法 for_each    /* 迭代器 是个很重要的名词,它是容器中每一个元素的指针,因此,不同容器的不同泛型类型的迭代器也不同。       但是迭代器的形式都差不多,比如string的迭代器是 std::string::const_iterator        vector的是std::vector::const_iterator这基本都是一种形式。        下边这个是把从string_1.begin()到string_1.end(),将(迭代器元素的的值)传到函数printAcharactor的参数里。        */    std::for_each(string_1.begin(),string_1.end(),printAcharactor);    //参见另一种形式    std::string::const_iterator iterBegin = string_1.begin();    std::string::const_iterator iterEnd = string_1.end();    std::cout<<std::endl;    while(iterBegin!=iterEnd)    {        std::cout<<*iterBegin;        iterBegin++;    }    return 0;}

原创粉丝点击