如何将C ++ 11循环转换为传统循环?

用户名

我的程序错误C2143中存在此错误:语法错误:在':'之前缺少',',我使用的是Visual c ++ express 2010,我认为VC 2010中支持C ++ 11剂量。

可以请somone修改此代码,并说明如何在传统的for循环中还原此for循环吗?ouFlexSignalInfo是c ++ stl的列表数据类型

for(auto ouSignalInfo : ouFlexSignalInfo)   //C++11;
{
    SSignalInfo ouSignal;
    ouSignal.m_omEnggValue = ouSignalInfo.m_omEnggValue.c_str();
    ouSignal.m_omRawValue = ouSignalInfo.m_omRawValue.c_str();
    ouSignal.m_omSigName = ouSignalInfo.m_omSigName.c_str();
    ouSignal.m_omUnit = ouSignalInfo.m_omUnit.c_str();
    ouSignal.m_msgName=ouFrame.m_strFrameName.c_str();
    SigInfoArray.Add(ouSignal);
}
来自莫斯科的弗拉德

如果使用MS VC ++ 2010,则编译器支持基于范围的for循环的MS语言扩展。该代码将如下所示

for each ( auto ouSignalInfo in ouFlexSignalInfo )
{
    SSignalInfo ouSignal;
    ouSignal.m_omEnggValue = ouSignalInfo.m_omEnggValue.c_str();
    ouSignal.m_omRawValue = ouSignalInfo.m_omRawValue.c_str();
    ouSignal.m_omSigName = ouSignalInfo.m_omSigName.c_str();
    ouSignal.m_omUnit = ouSignalInfo.m_omUnit.c_str();
    ouSignal.m_msgName=ouFrame.m_strFrameName.c_str();
    SigInfoArray.Add(ouSignal);
}

否则写会更好

for each ( const auto &ouSignalInfo in ouFlexSignalInfo )
{
    SSignalInfo ouSignal;
    ouSignal.m_omEnggValue = ouSignalInfo.m_omEnggValue.c_str();
    ouSignal.m_omRawValue = ouSignalInfo.m_omRawValue.c_str();
    ouSignal.m_omSigName = ouSignalInfo.m_omSigName.c_str();
    ouSignal.m_omUnit = ouSignalInfo.m_omUnit.c_str();
    ouSignal.m_msgName=ouFrame.m_strFrameName.c_str();
    SigInfoArray.Add(ouSignal);
}

由于ouFlexSignalInfo的类型未知,因此可以使用迭代器。例如

#include <iterator>

for ( auto it = std::begin( ouFlexSignalInfo ); it != std::end( ouFlexSignalInfo ); ++it )
{
    SSignalInfo ouSignal;
    ouSignal.m_omEnggValue = it->m_omEnggValue.c_str();
    ouSignal.m_omRawValue = it->m_omRawValue.c_str();
    ouSignal.m_omSigName = it->m_omSigName.c_str();
    ouSignal.m_omUnit = it->m_omUnit.c_str();
    ouSignal.m_msgName = ouFrame.m_strFrameName.c_str();
    SigInfoArray.Add( ouSignal );
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将foreach循环转换为Linq查询?

来自分类Dev

如何将for循环转换为变量?

来自分类Dev

如何将PHP循环转换为MySQL查询?

来自分类Dev

无法将传统的for循环转换为for-each循环

来自分类Dev

如何将循环转换为向量分配符号

来自分类Dev

如何将for循环输出转换为列表?

来自分类Dev

如何将for循环的结果转换为列表?

来自分类Dev

如何将文件循环转换为LINQ?

来自分类Dev

将Matlab循环转换为R循环

来自分类Dev

如何将tapply函数转换为for循环?

来自分类Dev

如何将循环转换为元组

来自分类Dev

如何将for循环的结果转换为pandas数据帧?

来自分类Dev

如何将这个“ for”循环转换为“ while”循环?

来自分类Dev

将for循环转换为foreach循环

来自分类Dev

将代码从FOR循环转换为WHILE循环

来自分类Dev

如何将foreach循环转换为Linq查询?

来自分类Dev

如何将foreach嵌套循环转换为linq格式?

来自分类Dev

将for循环转换为if

来自分类Dev

如何将for循环/转换为漂亮的coffeescript

来自分类Dev

将增强的for循环转换为常规的for循环

来自分类Dev

自动将foreach循环转换为for循环

来自分类Dev

将Stata循环转换为SPSS循环

来自分类Dev

C#如何将此foreach循环转换为for循环

来自分类Dev

如何将for循环转换为流

来自分类Dev

如何将for循环转换为python中的理解列表?

来自分类Dev

将 For 循环转换为 While 循环(列表)

来自分类Dev

c++ - 如何将for循环转换为while循环

来自分类Dev

如何将 for 循环转换为 while 循环?

来自分类Dev

如何将for循环转换为在r中应用