C++11
非著名程序员!
嘿
展开
-
C++ Lambda
#include <iostream>#include <set>#include <vector>using namespace std;int main(){ auto lam1 = []() {}; // lambda类似于一种仿函数,创建一个对象然后返回,调用时候直接使用()运算符调用。可以将lambda抽象理解为一个带有重载()的类。 lam1(); []() { cout << "lambda 2." &l原创 2021-05-09 22:39:39 · 150 阅读 · 0 评论 -
C++之explicit用法
explicit关键字是禁止隐式调用构造函数。什么是隐式调用构造函数呢,先看下面一个简单例子。struct test1{ //explicit test1(int a, int b = 0) : x(a), y(b){} test1 operator+(const test1 &t) { return test1(x + t.x, y + t.y); } int x, y;};int main(){ test1 x原创 2021-04-27 20:17:43 · 524 阅读 · 0 评论 -
C++11 initializer_list使用
initializer_list是C++11中新增的一个模板类,在初始化时调用,在使用STL的时候,通过{}对容器进行初始化就会调用。示例如下std::vector<int> v{1, 3, 45, 6, 2, 1, 1};cout << std::max({1, 2, 3, 5, 6, 7, 2, 342, 2, 34, 5}) << endl;初始化列表模板类位于initializer_list文件,如果想要在自定义函数、类的时候使用初始化列表,需要添加此头文原创 2021-04-27 19:21:22 · 363 阅读 · 0 评论 -
C++11可变模板参数
C++11支持可变模板参数,一个函数可以传入任意多个参数,类似于C语言的printf函数。示例如下:#include<iostream>using namespace std;void print() //递归出口{}template <typename T,typename... Types>void print(const T& firstArg,const Types&... args){ cout << firstArg &l原创 2021-04-22 22:14:53 · 203 阅读 · 0 评论