您的位置:首页 > 其它

给新手的STL教程(1)

2012-05-12 17:11 155 查看
// 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: