算法初步-对于STL容器的浅解

来源:互联网 发布:淘宝网免费注册 编辑:程序博客网 时间:2024/05/25 23:29
上次回顾了做C++课程设计中涉及到的一些STL库的运用,现在看了一下算法中STL的运用。
1.不定长数组:vector
    vector 就是一个不定长数组。不仅如此,他把一些操作封装到了vector类型内部,也可以把vector当做成一个内置类。
    假如有一个vector实例化的对象a a.size() 读取它的大小,a.resize()改变大小,a.push_back()向尾部添加元素,a.pop_back()删除最后一个元素等。
    vector就是一个模板类,所以需要用vector<int> a 或者 vector<double> b 这样的方式来声明一个vector 可以把这当做成 int a[] 的数组。
2.集合 :set
    规定set中每个元素最多只出现一次和sort一样。自定义类型也可以构造set,但同样必须定义小于运算符。
    用这个集合,可以解决在一堆数据中,存放不同的元素,去除相同的元素。
3.映射:map
    相比下java里的map 和 bundle  STL中的map显得有点弱。 
    map是从键key到值value的映射。因为重载了[]运算符,map像是数组的高级版。如map<string,int> m  定义的就是键为字符串 值为整形的映射。用m[“”] = int 来进行赋值操作。
    java 中是有专门的函数来进行操作。
4.双向链表:list
   名字可以代表它的功能,它就是一个链表结构的容器。好处在于可以双向操作数据,但不能进行随机操作,也就是制定位置进行操作。同链表和数组一样对比的各自优越性。
除去list  其他都支持insert find count remove 等操作,并且可以按照从小到大的顺序循环遍历其中的元素。map还提供了[] 运算符。map也成为 关联数组 。





原创粉丝点击