STL全称“ Standard Template Library”是C++的一种标准模板库,里面包含常用的数据结构和算法。它以可读性、健壮性、可移植、简便性闻名于C++领域。

    image.png
    STL包含很多可拓展的数据类型,像上面的Vector、List等等,一般是由std::引导的,像下面这种:要使用include
    image.png
    下面是一些常用的内置成员函数:
    image.png
    有意思的是像下面的List容器,它在其他方面与Vector相类似,不过它是可以两头插入元素的,有一个特别的push_front()函数,就是向前面插入元素,正因如此无序的存储,在遍历并输出它其中的元素时,要使用
    p != s.end()而不是p < s.end(),其实Vector也可以这样用,甚至于更推荐这样用。
    image.png
    下面是一段测试的代码:

    1. #include <iostream>
    2. #include <list>
    3. #include <string>
    4. using namespace std;
    5. int main()
    6. {
    7. list<string> s;
    8. s.push_back("一");
    9. s.push_back("二");
    10. s.push_front("三");
    11. s.push_front("四");
    12. list<string>::iterator p;
    13. for(p = s.begin(); p != s.end(); p++){
    14. //cout<<"S最后"<< &(*(s.end())<< endl;
    15. cout << &(*p) << endl;
    16. cout << *p << endl;
    17. }
    18. return 0;
    19. }
    20. //这上面运行会输出对应元素的地址,可以从里面看得出来,堆桟末尾的地址不一定是最后一个元素。

    下面是map的用法:
    image.png
    最后的while循环是从外部输入字符串,并从原来的price中搜寻对应的float值,就比如cin一个snapple,total就会加上一个0.5(coke的值)。