gpt4 book ai didi

c++ - 基于 for 循环迭代几个元组的范围的简明表示法是什么

转载 作者:太空狗 更新时间:2023-10-29 19:45:16 26 4
gpt4 key购买 nike

是否有更简单(更短)的方法将此代码片段编写为循环:

for (auto [a, b]: {pair<int, int>{1, 2}, pair<int, int>{3, 4}})
foo(a, b);

最好使初始化列表尽可能接近这种不编译的形式:

for (auto [a, b]: {{1, 2}, {3, 4}})
foo(a, b);

最佳答案

由于 C++ 是一种强类型语言,因此编译器推导的类型的模糊性是有限的。两层未指定的大括号就是一个例子。

您可以使用简单的 typedef 使其更短:

using pair_list = std::initializer_list<std::pair<int, int>>;

for (auto [a, b]: pair_list{{1, 2}, {3, 4}})
foo(a, b);

Live demo here .您可以根据需要优化/选择临时文件的类型。

关于c++ - 基于 for 循环迭代几个元组的范围的简明表示法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53444764/

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