c++void*与map强转

#include <iostream>
#include <map>

int main() {
    std::map<int, int> myMap = { {1, 100}, {2, 200}, {3, 300} };
    void* ptr = &myMap;

    // 安全转换 + 检查 
    if (!ptr) {
        std::cerr << "Error: Null pointer!" << std::endl;
        return 1;
    }

    auto* mapPtr = static_cast<std::map<int, int>*>(ptr);  // 优先用 static_cast
    for (const auto& pair : *mapPtr) {  // 兼容严格 C++14
        std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
    }

    return 0;
}

 

posted @ 2025-05-26 11:17  leochan007  阅读(7)  评论(0)    收藏  举报