如下代码使用stlport_static出错 std::map<std::string, int> myMap = { {"apple", 1}, {"banana", 2}, {"orange", 3} };
时间: 2023-07-19 07:04:44 浏览: 101
出错的原因可能是你的代码中使用了 `std::initializer_list`,而 `stlport_static` 不支持该特性。`std::initializer_list` 是 C++11 引入的语言特性,用于初始化容器和数组等对象。如果你使用的是较旧的 STL 实现,可能不支持这个特性。
解决方法有两种:
1. 升级 STL 实现。如果你使用的是较旧的 STL 实现,可以考虑升级到支持 `std::initializer_list` 的版本,比如 GNU STL 或者 libc++ 等。
2. 改变初始化方式。如果你无法升级 STL 实现,可以改变容器的初始化方式,例如:
```cpp
std::map<std::string, int> myMap;
myMap["apple"] = 1;
myMap["banana"] = 2;
myMap["orange"] = 3;
```
或者使用 `std::make_pair` 函数:
```cpp
std::map<std::string, int> myMap;
myMap.insert(std::make_pair("apple", 1));
myMap.insert(std::make_pair("banana", 2));
myMap.insert(std::make_pair("orange", 3));
```
相关问题
stlport_static 出错
`stlport_static` 是一个静态库,通常用于在编译时静态链接到您的项目中。如果您遇到了 `stlport_static` 的错误,可能是因为您的编译器找不到该库文件或者您的项目中没有正确引用该库文件。
要解决这个问题,您可以尝试以下步骤:
1. 确认您的编译器是否支持使用 `stlport_static` 库,如果不支持,您需要使用其他 STL 库或者升级您的编译器。
2. 确认您是否正确地配置了编译器的库路径,以便它可以找到 `stlport_static` 库文件。
3. 确认您是否正确地链接了 `stlport_static` 库文件到您的项目中。您可以在项目的编译选项中添加 `-lstlport_static` 或者在代码中使用 `#pragma comment(lib, "stlport_static.lib")` 来链接该库。
如果以上步骤都无法解决问题,您需要进一步检查您的编译器和项目设置,以确定问题的根本原因。
阅读全文