set和multiset会根据特定的排序准则,自动将元素排序。两者的不同之处在于multiset允许元素重复而set不允许。
继续阅读“C++标准程序库之set,multiset”
分类:C/C++
C++标准程序库之list
list使用一个doubly linked list(双向链表)来管理元素。使用时必须包含头文件:<list>。其中list类型是定义于namespace中,是个class template:
namespace std {
继续阅读“C++标准程序库之list”
C++标准程序库之deque
容器deque(发音为”deck”)和vector非常相似。它也采用动态数组来管理元素,提供随机存取,并有着和vector几乎一模一样的接口。不同的是deque的动态数组头尾都开放,能在头尾两端进行快速安插和删除。
继续阅读“C++标准程序库之deque”
C++标准程序库之vector
本人之前对STL的学习主要来自C++ Primer一书,随着时间的推进,对标准模板库的一些知识有些淡忘,遂再次对STL容器部分加以总结,用以温习。
继续阅读“C++标准程序库之vector”
C++中关键字typename小结
typename起到一个向编译器通知一个未知标识符是类型的作用,并且仅在模板定义中使用该关键字。还有十分重要的一点:若该名称是依赖于模板参数的限定名,则必须使用该关键字;若限定名不是依赖项,则该名称是可选的。
继续阅读“C++中关键字typename小结”
【转载】string字符串分割
昨天在处理数据的时候需要对字符串进行分割提取信息,于是查阅了一些资料,发现一篇博文总结的很全面。于是转载了过来,稍有修改。
继续阅读“【转载】string字符串分割”
【转载】typedef与函数指针
首先,我们知道typedef有简化代码的作用,typedef 行为有点像 #define 宏,用其实际类型替代同义字。不同点是typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。
继续阅读“【转载】typedef与函数指针”
被C++11抛弃的异常规范-exception specification
即使是被C++ 11抛弃的东西,但还是有必要了解一下。当然,抛弃了异常规范throw()之后,C++ 11引入了一种特殊的异常规范——noexcept。
继续阅读“被C++11抛弃的异常规范-exception specification”
STL源码之copy算法深入学习
copy算法可将输入区间[first, last)内的元素复制到输出区间[result, result+(last-first))内。也就是说,它会执行赋值操作*result = *first, *(result+1) = *(first+1), …依次类推。返回一个迭代器:result+(last-first))。
继续阅读“STL源码之copy算法深入学习”
STL源码之queue深入学习
queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口。queue允许新增元素、移除元素、从最底端加入元素、取得最顶端元素。
继续阅读“STL源码之queue深入学习”