STL
i_chaoren
这个作者很懒,什么都没留下…
展开
-
C++使用标准库--文本查询程序
题目:在给定文件中查询单词。查询结果是单词在文件中出现的次数及所在行的列表。如果一个单词在一行中多次出现,此行只显示一次,行会按照升序输出。 效果如下: 在此程序的实现中使用到的标准库内容包括: (1)ifstream:用来绑定并打开指定的文本。 (2)vector:用来保存整个文本,每行保存为vector中的元素。 (3)istringstream:用来将每行分解为单词。 (原创 2017-12-02 21:48:36 · 818 阅读 · 0 评论 -
C++STL--map和set 词频统计和单词转换
set简介 set官方参考连接:http://www.cplusplus.com/reference/set/set/ 1.set是按特定顺序存储的容器,元素值唯一。 2.set中的元素是const类型的,不能被修改,但是可以执行插入(insert)和删除(erase)。 3.set的底部实现为RB-tree. map简介 map官方参考连接:http://www.cpl原创 2017-11-30 11:01:13 · 1376 阅读 · 0 评论 -
STL--allocator分配器
首先介绍一下执行new后的函数调用关系:new -> operator new -> malloc(CRT) -> 调用操作系统的内存分配API(Windows、Linux、Unix)介绍:std::allocator是STL容器使用的内存配置器,也是标准库唯一预定义的内存配置器。每个容器内部都有一个allocator,用来完成内存配置与释放,对象构造和析构的工作。特点:将内存分...原创 2018-06-03 15:48:33 · 1152 阅读 · 0 评论 -
STL中vector的底层解析及简易实现
vector是一种动态增长的数组,当原始容量被用尽后,在别的地方进行扩充,大小为原来的2倍,然后将内容拷贝过去;成长过程如下图所示; 下面是vector的关键源代码; template<class T, class Alloc = alloc> class vector { public: typedef T value_type; //vector中的迭代器就是一个指针...原创 2017-08-13 15:17:19 · 1660 阅读 · 0 评论 -
C++11 多线程编程--线程安全队列
1 std::thread类的构造函数是使用可变参数模板实现的,也就是说,可以传递任意个参数,第一个参数是线程的入口函数(可调用对象),而后面的若干个参数是该函数的参数。 2 std::mutex有两种操作:锁定(lock)与解锁(unlock)。 3 std::lock_guard在类的构造函数中创建资源,在析构函数中释放资源,因为就算发生了异常,c++也能保证类的析构函数能够执行。 4 ...原创 2019-08-18 21:41:10 · 1335 阅读 · 0 评论