C++
TTomcat
这个作者很懒,什么都没留下…
展开
-
C++代码高效小技巧
快速回顾 1.参数传递方式 使用move的值传递构造 2.避免发生不必要复制 引用返回 3.移动语义 4.避免创造临时对象 返回值避免 5.reserve预分配内存 6.内联函数 7.迭代>递归 8.选择效率更高的算法 9.尽可能多的使用缓存 10.profiling 11.合适的数据结构 12.if改switch 13.优先考虑栈 而不是堆 14.不需要返回值时 不设返回值 15.位操作 代替乘法除法 16.构造函数使用初始化 而不是赋值 17.明确情况再使用模板 18.参数不要过多 19.善..原创 2021-08-17 16:58:39 · 225 阅读 · 0 评论 -
C++20小笔记
快速回顾 比较运算<=> 会返回 <0 =0 >0的值 最好用auto接 for(auto n=v.size(); auto i : v){}初始化 lambda表达式 [=]需要显示捕获this [=,this] lambda表达式可以使用模板 []<class T>(T a, auto&& b){}; 函数 编译期执行修饰符 consteval int f(){} 如果不能执行则编译失败 constint const char *c = f(tr.原创 2021-08-16 16:39:27 · 92 阅读 · 0 评论 -
C++17小笔记
快速回顾 构造函数模板推导 结构化绑定 auto& [i,f] = a; i改变 std::pair a(1,2)里的1也会变 if switch语句初始化 if(int a=A();a<101){} 内联变量 头文件初始化类静态成员 折叠表达式{} 相当于= constexpr lambda 可以在编译期进行计算 namespace嵌套可改为 namespace A::B::C{} __has_include预处理表达式 #if __has_include(<charconv>原创 2021-08-16 15:43:24 · 83 阅读 · 0 评论 -
C++14小笔记
快速回顾 函数返回值类型推导auto 注意如果有多个return要统一 虚函数不能使用 不能返回初始化列表 lambda参数auto 变量模板 别名模板 constexpr 可使用局部变量及循环 可多个return struct [[deprecated]] A{};标记 二进制字面辆与整形字面量分隔符double b = 3.14'1234'1234'1234 std::make_unique std::shared_timed_mutex与std::shared_lock std::integer_s原创 2021-08-16 14:24:38 · 91 阅读 · 0 评论 -
Java转C++小笔记
1.#ifndef(条件编译命令)是为了避免c++全局变量多重定义的错误 形式1:#ifndef #else #endif 形式2:#ifndef #define 没有定义则进行此段(#else)定义过则此段#endif 即定义过则忽略第一段 进行第二段 2.namespace命名空间用来区分同名函数的不同版本 3.extern标示变量或者函数定义在别的文件中 4.sta...原创 2019-08-07 10:15:08 · 794 阅读 · 0 评论 -
C++11小笔记
所有STL容器支持 ={1,2,3} 初始化列表 自定义class支持初始化列表 A(): a(b){} 类型推导Auto Type : auto d=2.3 ; 编译器会自动推导处double类型 foreach遍历: 用for(int i:v)代替for (std::vector<int>::const_iterator itr = v.begin(); itr !=...原创 2019-08-07 11:02:01 · 92 阅读 · 0 评论