Tricks

title: C++ Tricks tags:

  • C++

  • Tricks

    categories:

  • C++

Shuffle

static void shuffle(vector<int>* v) {
  srand(9);
  for (int n = v->size(); n >= 2; n--) {
    swap((*v)[n - 1], (*v)[static_cast<unsigned>(rand()) % n]);
  }
}

class 成员初始化

$ cat 010.cpp 
#include <iostream>

using namespace std;

class Plm {
    public:
    struct  Arg {
        size_t net;
        size_t mem;
        size_t query;
    };
};

int main() {
    Plm::Arg arg {
        .net = 1,
        .mem = 3,
        .query = 2
    };
    cout << arg.net << " " << arg.mem << " " << arg.query << endl;
    return 0;
}
$ g++ 010.cpp && ./a.out 
1 3 2

parameter pack

完美转发

无论是T&&、左值引用、右值引用,std::forward都会依照原来的类型完美转发。

省略号语法

Amazing

最后更新于

这有帮助吗?