
void addData(int vNumData, std::vector<std::vector<int>>& voOutput){ std::vector<int> T; T.reserve(vNumData); for(int i = 0; i < vNumData; i++){ T.push_back(100); } voOutput.push_back(T); // 耗时操作 } int main(){ std::vector<std::vector<int>> Data; for(int i = 0; i < 10000; i++){ addData(10000, Data); } }
- voOutput.push_back(T) 耗时操作
解决方案
- 实现移动构造函数
- 使用 std::move 传递参数,voOutput.push_back(std::move(T));




近期评论