C++ std::函数总结
最近看了一段程序,是基于C++11/14编写的,非常符合代码规范(非常抽象==),看后叹为观止,越发觉得自己只会/只看得懂最基础的类和对象,惭愧。其中,代码中发现了好几个std::函数,感觉非常有趣,于是记录一下。
函数 | 解释 | 可参考的详细链接 |
---|---|---|
std::move | 将左值强制转化为右值引用 。被move之后的原指针为空。 | https://blog.csdn.net/p942005405/article/details/84644069 |
std::bind | 直白来说就是把函数和入参一起放入。1)第一个参数:可调用的对象f,通常为函数。2)后续参数:函数的入参,一般按照顺序依次给入,或者通过占位符std::placeholders_n 明示调用时的第n个入参是哪个。 | https://blog.csdn.net/u013654125/article/details/100140328 |
std::make_unique | std::make_unique是c++14才有. 之前使用std::unique_ptr. | |
std::make_shared | std::make_shared | https://blog.csdn.net/u011475134/article/details/76714243?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control |
std::map | map是一种容器,等价于字典。我们通常用如下方法构造一个map map<int, string> mapStudent | https://blog.csdn.net/tangketan/article/details/7691472 |
std::make_pair | std::pair是二元组类模板,就是表示两种相互关联的事物。make_pair实际上是一个创建二元组的便利函数模板,这里用到了c++函数模板的模板参数可省略的特性,不使用这个函数模板的话,每次你要创建一个二元组必须写明模板参数。如:std::pair a( ‘a’, 97 ); make_pair( ‘a’, 97 ); |
template<typename T, typename... Ts>
std::unique_ptr<T> make_unique(Ts&&... params)
{
return std::unique_ptr<T>(new T(std::forward<Ts>(params)...));
}
make_unique完美传递了参数给对象的构造函数,从一个原始指针构造出一个std::unique_ptr,返回创建的std::unique_ptr。