stl是一个好东西,但是一直唯一一点不爽的就是长长const std::string&,const std::vector<int>&的函数参数。
void test(const std::string& str, std::vector<int>& vec, std::vector<int>& outvec)
{
// TODO ...
// Do something...
}
这上面就是一个典型的函数声明,不仅写起来累,看起来也累。
你说不用const&行不行呢,其实也不是不行。
但用c++一般都会有极限优化的心态作祟,再说了用值传递肯定会被一邦人鄙视的!!
那少写的const行不行呢,速度一样了,就多写了&而已。
是,速度是达到了,但这个函数调用起来总是让不放心呀,万一你给我改了咋整呀!!
唉,到底发明c++的人是咋想的呢??
自从我知道c#的写法,我一直想把c#的ref、in、out的语义引入到c++里面。
虽然一直觉得c#一般般,c++才是亲儿子,但从语法上,书写上,真的甩c++几条街。
比如下面这段代码
public void Test(in string str, ref Array<int> array, out List<int> list)
{