【发布时间】:2020-07-13 02:31:21
【问题描述】:
我正在尝试通过自动功能迭代这个简单的功能,但它给了我大量错误。我不知道这段代码有什么问题。
#include <vector>
#include <unordered_map>
#include <iostream>
using namespace std;
int main() {
std::unordered_map<std::string, int> m = {
{"apples", 5},
{"bananas", 3},
{"pears", 7},
};
for (auto& [fruit, count] : m) { //line 13
std::cout << "I have " << count << " " << fruit << ".\n";
}
}
13 [错误] '[' token13 之前的预期不合格 id
14 [错误] 应为 ';'在'['标记
之前13 [错误] 'fruit' 未在此范围内声明
13 [错误] 'count' 未在此范围内声明
还有更多错误。我已经在网上阅读了这个例子,它在那里工作得很好。
【问题讨论】:
-
结构化绑定是 C++17 功能,因此在 C++11 中不可用。
标签: c++ c++11 maps unordered-map auto