Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;:优雅地迭代一组数字 有人建议C++ 11/14如何优雅地迭代一个常数集(在英语意义上,而不是C++意义),最好不要在这里留下临时对象: set<int> colors; colors.insert(0); colors.insert(2); for (auto color : colors) { //Do the work }_C++_Loops_C++11_C++14 - Fatal编程技术网

C++;:优雅地迭代一组数字 有人建议C++ 11/14如何优雅地迭代一个常数集(在英语意义上,而不是C++意义),最好不要在这里留下临时对象: set<int> colors; colors.insert(0); colors.insert(2); for (auto color : colors) { //Do the work }

C++;:优雅地迭代一组数字 有人建议C++ 11/14如何优雅地迭代一个常数集(在英语意义上,而不是C++意义),最好不要在这里留下临时对象: set<int> colors; colors.insert(0); colors.insert(2); for (auto color : colors) { //Do the work },c++,loops,c++11,c++14,C++,Loops,C++11,C++14,或 for(集合(0,2)中的自动着色)//它肯定不能按现在的方式工作 { //做这项工作 } 只是一些随机的想法。 像这样的 for(auto color : set<int>{0, 2}) { // do the work } 为了避免临时对象,可以使用模板化函数,如 template<int N> void worker(params_list) { // do the work } 模板 无效工作程序(参数列表){ //做这项工作 } 然后 worke

for(集合(0,2)中的自动着色)//它肯定不能按现在的方式工作
{
//做这项工作
}
只是一些随机的想法。 像这样的

for(auto color : set<int>{0, 2}) { // do the work }
为了避免临时对象,可以使用模板化函数,如

template<int N>
void worker(params_list) {
   // do the work
}
模板
无效工作程序(参数列表){
//做这项工作
}
然后

worker(参数列表);
工人(参数列表);
只是一些随机的想法。 像这样的

for(auto color : set<int>{0, 2}) { // do the work }
为了避免临时对象,可以使用模板化函数,如

template<int N>
void worker(params_list) {
   // do the work
}
模板
无效工作程序(参数列表){
//做这项工作
}
然后

worker(参数列表);
工人(参数列表);

您可以使用
std::initializer\u list
代替
std::set

for (auto color : {2, 5, 7, 3}) {
    // Magic
}

用括号括起来的
{…}
将推导出一个
std::initializer\u list
,它是可编辑的。

您可以使用
std::initializer\u list
而不是
std::set

for (auto color : {2, 5, 7, 3}) {
    // Magic
}

用括号括起来的
{…}
将推导出一个
std::initializer\u list
,它是可迭代的。

您迭代的是一组整数。使用引用进行迭代的开销将相等或更大。你所拥有的一切都很好。当你说像这里这样的临时对象时,你指的是哪一个对象?例如,(auto const&color:colors)是有效的。我正在寻找一种方法,使源代码优雅,避免引入“colors”。
set
在这里没有明显的用途,因为你的值是已知的<代码>for(自动着色:{0,2})很好。您迭代的是一组整数。使用引用进行迭代的开销将相等或更大。你所拥有的一切都很好。当你说像这里这样的临时对象时,你指的是哪一个对象?例如,(auto const&color:colors)是有效的。我正在寻找一种方法,使源代码优雅,避免引入“colors”。
set
在这里没有明显的用途,因为你的值是已知的<代码>用于(自动颜色:{0,2})可以。
for (auto color : {2, 5, 7, 3}) {
    // Magic
}