gpt4 book ai didi

c++ - 我可以使用基于范围的 for 循环轻松迭代 map 的值吗?

转载 作者:IT老高 更新时间:2023-10-28 13:02:56 32 4
gpt4 key购买 nike

是否可以仅使用“foreach”来遍历 std::map 中的所有值?

这是我当前的代码:

std::map<float, MyClass*> foo ;

for (map<float, MyClass*>::iterator i = foo.begin() ; i != foo.end() ; i ++ ) {
MyClass *j = i->second ;
j->bar() ;
}

有没有办法可以做到以下几点?

for (MyClass* i : /*magic here?*/) {
i->bar() ;
}

最佳答案

C++1z/17 开始,您可以使用结构化绑定(bind):

#include <iostream>
#include <map>
#include <string>

int main() {
std::map<int, std::string> m;

m[1] = "first";
m[2] = "second";
m[3] = "third";

for (const auto & [key, value] : m)
std::cout << value << std::endl;
}

关于c++ - 我可以使用基于范围的 for 循环轻松迭代 map 的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13087028/

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