c++ auto问题。初学者。
答案:1 悬赏:70
解决时间 2021-01-08 09:46
- 提问者网友:龅牙恐龙妹
- 2021-01-07 19:05
c++ auto问题。初学者。
最佳答案
- 二级知识专家网友:你可爱的野爹
- 2021-01-07 19:59
VS2010不支持C++11的 for ( xx : xx) 这样的循环语句,可以改造一下:
for (auto str = V.begin(); str != V.end(); ++str)
for (auto ch = (*str).begin(); ch != (*str).end(); ++ch)
*ch = toupper(*ch);追问试了一下 还是不行 error C2664: “toupper”: 不能将参数 1 从“std::_Vector_iterator<_Myvec>”转换为“int”
那请问VS2013可以那样吗?追答你确定完成使用我的上面的代码么? "*ch = toupper(*ch)"这一句里的两个星号(“*”)是必须的哦,少了星号就会出现你说的那个编译错误。
根据文档显示,VS2012,VS2013都支持你的那个for格式了(这种叫“基于范围的 for 循环”)。
for (auto str = V.begin(); str != V.end(); ++str)
for (auto ch = (*str).begin(); ch != (*str).end(); ++ch)
*ch = toupper(*ch);追问试了一下 还是不行 error C2664: “toupper”: 不能将参数 1 从“std::_Vector_iterator<_Myvec>”转换为“int”
那请问VS2013可以那样吗?追答你确定完成使用我的上面的代码么? "*ch = toupper(*ch)"这一句里的两个星号(“*”)是必须的哦,少了星号就会出现你说的那个编译错误。
根据文档显示,VS2012,VS2013都支持你的那个for格式了(这种叫“基于范围的 for 循环”)。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯