![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程技巧
zhjs_abc
不要在可以吃苦的时候而选择了安逸
展开
-
cmake设置启用intel编译器编译c++代码
注意,不同版本的intel编译器套件,名称可能不一样,我这里用的是2022版的。原创 2023-07-20 15:54:02 · 499 阅读 · 0 评论 -
交叉编译folly库
folly库交叉编译原创 2023-03-27 00:04:28 · 1344 阅读 · 0 评论 -
cmake中如何添加fPIC编译选项
cmake添加fPIC编译选项原创 2023-03-24 21:59:45 · 2988 阅读 · 1 评论 -
linux下如何方便的切换cmake版本
cmake原创 2022-08-12 10:47:18 · 3151 阅读 · 0 评论 -
cmake学习笔记 二
cmake原创 2022-08-10 12:42:57 · 235 阅读 · 0 评论 -
Intel编译器优化指南
Intel编译器优化指南转载 2022-08-04 17:46:29 · 326 阅读 · 0 评论 -
Shell中截取字符串的用法小结
原文地址:https://www.cnblogs.com/kevingrace/p/8868262.html转载 2021-06-30 15:15:33 · 80 阅读 · 0 评论 -
C++学习笔记-lambda表达式
lambda表达式的值捕获或者引用捕获只能捕获lambda表达式的作用域内可见的非静态局部变量,包括形参;在构造lambda表达式的时候,尽量不要使用默认的值捕获或者默认的引用捕获,而是直接将需要捕获的变量放到捕获列表中;在类中使用lambda捕获成员变量时,无法通过将成员变量加入到捕获列表里面去捕获,可以通过默认的值捕获的方式捕获成员变量:class A{private: int m;public: void f() { auto r = [](){std::cout ..原创 2020-10-05 14:52:19 · 239 阅读 · 0 评论 -
C++学习笔记-右值引用、移动语义和完美转发
std::move()只是做了一次强制类型转换,将实参转成右值类型,并不做其他任何动作;如果想用std::move()实现真正的移动操作,那么传入的实参类型一定不能是常量类型,不然通过std::move()强转出来的类型也仍然带有常量属性,导致调用构造函数时调用的是复制构造函数,而不是移动构造函数;当定义的函数的形参是右值类型的时候,只能传入一个右值给这个函数,不能传一个左值给这个函数;std::move()是无条件的将实参转成右值类型(当然会保留常量属性),而std::forward..原创 2020-10-04 17:55:12 · 193 阅读 · 0 评论 -
C++学习笔记-智能指针
如果想用堆内存指针,则最好首选std::unique_ptr,它的大小与内置类型指针相同,且性能也几乎与内置类型指针差不多。如果内置类型指针对你来说足够小或者足够快,那么std::unique_ptr几乎可以肯定也能满足你的要求。不过,如果不使用默认的析构器,而是自定义析构器,则大小可能会变化。当自定义析构器是普通函数时,则大小至少加上函数指针的尺寸,如果自定义析构器是函数对象,则带来的尺寸变化取决于该函数对象中存储了多少状态。无状态的函数对象(如无捕获的lambda表达式)不会浪费任何存储空间。因此,..原创 2020-09-30 16:36:23 · 582 阅读 · 0 评论 -
C++学习笔记-现代C++功能
当函数的形参是按值传递时,实参的顶层const属性以及引用属性在传入时都会被忽略,但是实参的底层const不会被忽略。当形参是指针或者左值引用时(T&),实参的顶层const或底层const都不会被忽略,但是实参的引用属性仍然被忽略。当形参是万能引用时(T&&),实参的顶层const和底层const也不会被忽略,但是实参的引用属性被忽略,此外,尽管此时形参是右值引用,但是传入的实参是左值时,形参会变成左值引用,传入的实参是右值时,形参也会变成右值引用。此外,volatile如同c..原创 2020-09-29 14:33:51 · 180 阅读 · 0 评论 -
C++加快IO操作的方法
如果C++代模块中没有使用C的输入或输出函数,而是只用到了C++的输入输出函数,则可以使用std::ios::sync_with_stdio(false)来关闭同步。这个函数是一个“是否兼容stdio”的开关,C++为了兼容C,保证程序在使用了std::printf和std::cout的时候不发生混乱,将输出流绑到了一起。解绑后,速度会有质的提升;此外,std::cin与std::cout也有绑定,导致每次std::cout执行后并在执行sstd::cin时都会刷新输出缓冲区,解除同步能够进一步加快IO.原创 2020-09-16 19:35:58 · 1368 阅读 · 0 评论 -
C++如何快速进行IO操作
详情请移步:探寻C++最快的读取文件的方案;原创 2020-09-14 17:41:11 · 435 阅读 · 0 评论 -
递归技巧整理
请看以下链接:超全递归技巧整理,这次一起拿下递归原创 2020-08-19 19:09:07 · 129 阅读 · 0 评论 -
C++中使用vector, array和内置数组的效率说明
前几天在VS下测试得出的结论:当数据量较小时,既可以使用vector(使用其push_back函数即可),也可以使用array或者内置数组,不过优先建议使用vector,其次是array,最后才是内置数组;当数据量较大时,由于array是在栈上分配空间,此时array不能用(因为栈空间有限,数据量太大就会栈溢出)(至少最新VS2019编译器是这样的),只能用vector或在堆上分配空间的内置数组。此时:优先使用vector,且尽量预先分配空间,而不是用push_back()来添加数据。 因为数据量..原创 2020-08-06 16:07:41 · 3925 阅读 · 0 评论 -
一些编程或者算法小技巧或小知识点
一些编程或者算法小技巧持续更新中…1. 字符大小写转换大写转小写:char LowChar = (UpperChar | 0X20);小写转大写:char UpperChar = (LowChar & -33);2. 两个整数之和的一半(xxx + yyy)/2 = (xxx & yyy) + (xxx ^ yyy) >> 1其中,xxx和yy...原创 2019-11-15 17:05:33 · 238 阅读 · 0 评论