在C++中,std::map
是一個關聯容器,它存儲了鍵值對,并根據鍵進行排序
try-catch
語句捕獲異常:#include<iostream>
#include <map>
#include <stdexcept>
int main() {
std::map<int, int> src_map = {{1, 2}, {3, 4}, {5, 6}};
std::map<int, int> dest_map;
try {
dest_map = src_map; // 執行拷貝操作
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what()<< std::endl;
return 1; // 返回非零值表示程序出錯
}
// 如果沒有異常,繼續執行其他操作
std::cout << "Map copied successfully."<< std::endl;
return 0;
}
在某些情況下,內存分配可能會失敗。你可以通過檢查std::map
的max_size()
方法來確定是否有足夠的內存空間來存儲拷貝的元素。
#include<iostream>
#include <map>
int main() {
std::map<int, int> src_map = {{1, 2}, {3, 4}, {5, 6}};
std::map<int, int> dest_map;
if (src_map.size() > dest_map.max_size()) {
std::cerr << "Error: Not enough memory to copy the map."<< std::endl;
return 1; // 返回非零值表示程序出錯
}
dest_map = src_map; // 執行拷貝操作
// 如果沒有問題,繼續執行其他操作
std::cout << "Map copied successfully."<< std::endl;
return 0;
}
請注意,這種方法并不能保證在所有平臺和編譯器上都能正常工作。在實際應用中,更推薦使用try-catch
語句來捕獲異常。