gpt4 book ai didi

c++ - 映射基于自动的循环单元素访问 C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:13:32 24 4
gpt4 key购买 nike

我试图理解 auto 之外的“理论”循环

std::map

C++ 中的元素。我有一个 std::mapstd::string作为 KEY 和 vector<std:string>作为值(value)。我可以通过以下方式访问它的元素:

for ( auto &element : myMap ) {
std::cout << element.first << ": " << '\t';
for ( std::string subElement : element.second ) std::cout << subElement << ", ";
}
}

至于 vector<string> 的循环元素 我知道我可以用“auto”代替“std::string”。但是在这种情况下 map 的等价物是什么?我四处研究和搜索,我在 that post 中找到了每个 map 元素都作为一个

map< K, V>::value_type

但是我该怎么写呢?我试过:

for ( std::map<std::string, vector<std::string>> &pz : myMap ) {
// print ...
}

和类似的东西,但它们根本不起作用。

最佳答案

std::map::value_type 被定义为 std::map 的类型的元素,即 std::pair<const Key, T> (即此处的 std::pair<const std::string, vector<std::string>>)。您应该将其用作

for ( std::map<std::string, vector<std::string>>::value_type &pz : myMap ) {
// ^^^^^^^^^^^^
// print ...
}

关于c++ - 映射基于自动的循环单元素访问 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56624267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com