C++
张奎龙
这个作者很懒,什么都没留下…
展开
-
std::initializer_list可以用于std::make_shared吗
我们知道,在C++11中,make_shared可以用于类的构造函数的初始化,如下面的例子。class test{public:test(){cout << "default constructor" << endl;};test(int, int){cout << "two para test" << endl;}}int main(){std::shared_ptr<test> pt =.原创 2020-09-28 10:12:35 · 455 阅读 · 1 评论 -
C++ 智能指針之單例模式
作爲與非智能指針的區別,使用智能指針時,在創建單例模式對象時還是有區別的,具體:red display;#include <iostream>#include <string>#include <memory>using namespace std;class Single{public: virtual ~Single() = default; static std::shared_ptr<Single> getSing...原创 2020-09-14 16:44:22 · 136 阅读 · 0 评论 -
C++ tuple
tuple其实就是泛化版的pair,对于C++11,tuple的使用及例程如下:C++11不支持简单的遍历tuple,C++17可以使用std::apply遍历tuple;#include <iostream>#include <memory>#include <algorithm>#include <string>#include ...原创 2019-12-23 14:38:19 · 185 阅读 · 0 评论 -
C++ lambda (一)
学习C语言时,我们知道有函数指针;学习C++时,有std::function<>, 那lambda是什么,又做什么用途呢?本文试图对这语言特性作详细解释。lambda的类型,其实是个不具名的function object, 每个lambda的表达式的类型是独一无二的。因此如果想根据该类型声明对象,可借助于template或者auto。如果实在需要写下该类型,可使用decltype...原创 2019-12-19 23:10:05 · 111 阅读 · 0 评论 -
C++11在自定义类中怎样使用std::initializer_list
C++11之前,vector中添加内容需要push_back;C++11标准之后,可以使用下面的方式,原因是在vector中的构造函数中新加入了std::initializer_list作为形参。具体例子如下:#include <iostream>#include <string>#include <memory>#include <initia...原创 2019-12-19 18:57:12 · 641 阅读 · 0 评论 -
C++ unordered_map 详细介绍及使用
TODO原创 2019-08-05 17:04:16 · 153 阅读 · 0 评论