STL
vcpro126
这个作者很懒,什么都没留下…
展开
-
VS2017 C++ filesystem
VS2017 C++ 还没有正式支持filesystem,命名空间是std::experimental::filesystem。一些常用的方法:#include <iostream>#include <filesystem>#include <fstream>#include <string>using namespace std;...原创 2020-04-11 23:25:53 · 1687 阅读 · 0 评论 -
C++ initializer_list 高性能的stl 局部常量数组。
C++11引入了一个新的类模板initializer_list。它本质就是C 的局部常量数组的封装,避免了使用因为动态数组或vector而产生的在堆上分配、释放内存的额外开销,同时提供begin(),end(),size()的接口可以配合STL的容器和算法,这样可以减少代码量,如:方便地设计出支持变长数组的函数。initializer_list的成员都是const的,语法上不支持修改,减...原创 2020-03-26 22:39:24 · 456 阅读 · 0 评论 -
stl vector push_back解析
查看 Visual Studio 2013的stl vector代码,发现push_back要先判断元素是否本来就在vector里面,再分情况push_back.粗看不解,以为多此一举,其实里面暗藏玄机。所以就搜索一下,发现了这个问题“Is it safe to push_back an element from the same vector?”的讨论,https://stackove...原创 2020-02-22 13:50:53 · 450 阅读 · 0 评论 -
STL解读-rebind的目的就是再定义一个struct (allocator), 这个allocator能分配 _Other类型的元素。
STL源文件:文件:c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\xmemory行:103-107templatestruct rebind{ // convert an allocator to an allocator typedef allocator other;};原创 2014-12-01 21:42:19 · 1449 阅读 · 0 评论