ccc*_*nrc 5 c++ dictionary stdmap auto c++11
我试图理解除了auto循环之外的“理论”
std :: map
C ++中的元素。我有std::map一个std::stringKEY和一个vector<std:string>作为价值。我可以通过以下方式访问其元素:
for ( auto &element : myMap ) {
std::cout << element.first << ": " << '\t';
for ( std::string subElement : element.second ) std::cout << subElement << ", ";
}
}
Run Code Online (Sandbox Code Playgroud)
至于vector<string>元素上的循环,我知道我可以放“ auto”而不是“ std :: string”。但是在这种情况下,地图的等效值是多少?我经过研究和搜索,在那篇文章中发现每个地图元素都以
map <K,V> :: value_type
但是我怎么写下来呢?我试过了:
for ( std::map<std::string, vector<std::string>> &pz : myMap ) {
// print ...
}
Run Code Online (Sandbox Code Playgroud)
和类似的东西,但是它们根本不起作用。
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 ...
}
Run Code Online (Sandbox Code Playgroud)