Pau*_*ulH 4 c++ optimization containers stl standard-library
如果我有一个返回STL容器的函数,我会生成标准容器的全部内容的副本吗?
这是这样的:
void Foo( std::vector< std::string >* string_list );
Run Code Online (Sandbox Code Playgroud)
比这更好:
std::vector< std::string > Foo();
Run Code Online (Sandbox Code Playgroud)
容器里的东西是否重要?例如,会返回这样的容器:
struct buzz {
int a;
char b;
float c;
}
std::map< int, buzz > Foo();
Run Code Online (Sandbox Code Playgroud)
比这更昂贵的操作:
std::map< int, int > Foo();
Run Code Online (Sandbox Code Playgroud)
谢谢,PaulH
编辑: 这是与C++ 03.遗憾的是,C++ 0x解决方案是不可接受的.
Edit2: 我正在使用Microsoft Visual Studio 2008编译器.