map<string, int, std::greater<string>> mapWord2 ; 3、使用比较函数也可以 bool compFunc(const string& a, const string& b) { return a.compare(b) > 0; } map <string, int, decltype(compFunc)*> mapWord3; //注意*号的存在。比较操作类型必须为函数指针类型 4、使用lambda表达式 auto fc =...
在x86-64 上,对于 rb_tree iterator 这种只有一个 pointer member 且没有自定义 copy-ctor 的 class,pass-by-value 是可以通过寄存器进行的(例如函数的头 4 个参数,by-value 返回对象算一个参数),就像传递普通 int 和指针那样。因此实际上可能比 pass-by-const-reference 略快,因为callee 减少了一次 deference。
在x86-64 上,对于 rb_tree iterator 这种只有一个 pointer member 且没有自定义 copy-ctor 的 class,pass-by-value 是可以通过寄存器进行的(例如函数的头 4 个参数,by-value 返回对象算一个参数),就像传递普通 int 和指针那样。因此实际上可能比 pass-by-const-reference 略快,因为callee 减少了一次 deference。