多线程函数传参慎用引用

c++11引入的多线程非常方便,结合lambda表达式可以快速将单线程程序改为多线程。 c++使用引用传参是一个常用的技巧,可以减少数据拷贝…

rsync_filter

rsync的filter有两种写法,一种是使用–filter=”+ xxx”(可以连续使用多个),一种是…

shared_ptr改成unique_ptr导致编译不过

如果一个类的属性包括unique_ptr,那么它的默认拷贝构造函数就是delete了的,需要手动写,具体是把这个unique_ptr拷贝还是…

Linux_Bash_Tips

  #!/bin/bash a=2462620 b=2462620 if [ “$a” -eq “$b” ];then echo …

std::swap

std::swap(a,b)并不是c++11基于std::move实现的swap,想调用c++11版本的正确使用方法为 using std:…

try不管用的情况

本来以为只要是在try里面的代码只要有异常都可以catch。但是今天遇到了不能catch的情况,因为异常出现在了一个lambda表达式里面,…

K个不重复随机数的生成

std::vector<int> Random(std::vector<int> a, int K) { std::…

unordered_map不一定比map快

unordered_map是基于Hash的结构,查询速度可以认为是O(1); map是基于红黑树的结构,查询速度为O(logn)。 一般来说…

std::bitset访问效率

当bitset的长度小于64(8个字节)的时候,没有太大效率问题。但足够长的时候就需要考虑了,事实上,当长度大于64的时候会马上突显出来这个…

C++ decltype和auto

C++11开始改变了C++98中关键字auto的定义,使得C++可以在一些情况下不用写长长的变量类型,例如: std::vector<…