这两个例子都有效并且做同样的事情。我只是想了解它们在优化、速度和整体方面有什么区别。哪种方法更好,为什么?提前致谢。
第一个例子:
std::map<std::vector<int>, std::vector<double>> data
printMap(&data);
...
void printMap(std::map<std::vector<int>, std::vector<double>> *p_data){
for(std::map<std::vector<int>, std::vector<double>>::iterator itr = p_data->begin(); itr != p_data->end(); ++itr){
for(auto it = itr->first.begin(); it != itr->first.end(); ++it){
std::cout << *it << std::endl;
}
for(auto it2 = itr->second.begin(); it2 != itr->second.end(); ++it2){
std::cout << *it2 << std::endl;
}
}
}
Run Code Online (Sandbox Code Playgroud)
第二个例子:
std::map<std::vector<int>, std::vector<double>> data;
printMapRef(data);
void printMapRef(std::map<std::vector<int>,std::vector<double>> &data){
for(std::map<std::vector<int>, std::vector<double>>::iterator itr = data.begin(); itr != data.end(); ++itr){
std::vector<int> tempVecInt = (*itr).first;
std::vector<double> tempVecDouble = (*itr).second;
for (int i = 0; …Run Code Online (Sandbox Code Playgroud)