在ros使用for auto报错

  • auto类型说明符
  • 范围for语句for auto

auto类型说明符

常常需要将表达式的值赋给变量,为了解决声明变量时表达式的值未知的问题,引入了auto类型说明符。它可以根据初始值自动分析表达式所属类型:

// 由val1和val2相加的结果推断出item的类型
auto item = val1 + val2;
//声明同一种类型
auto i = 0, *p = &i;//正确:p是整形指针
//不能声明不同类型
auto sz = 0, pi = 3.14 //错误

范围for语句for auto

c++11引入了一种更简单的for语句,可遍历容器或序列的所有元素:

for (declaration: expression)statement

其中expression必须是一个序列,其拥有能返回迭代器begin和end成员;
declaration定义一个变量,序列中的每个元素都必须能转换成该变量的类型,通常使用auto。如果需要对序列中的元素执行操作,循环变量须声明成引用类型
每次迭代都会重新定义循环控制变量,并将其初始化为序列中的写一个值,之后执行statement。所有元素都处理完毕后循环中止。

vector<int> v = {0,1,2,3,4,5,6,7,8,9};
//范围变量须是引用类型,才能对元素执行写操作
for(auto &r : v) //对v中每一个元素r *= 2;//将v中每个元素翻倍

由于准备修改v中元素的值,因此将r声明成引用类型。此时在循环内给r赋值,即改变了r所绑定的元素的值。
范围for语句等价的传统for语句:

for (auto beg = v.begin(), end = v.end(); beg != end; ++beg) {auto &r = *beg;r *= 2;
}


1.由于范围for语句预存了容器end()的值,所以不能在范围for语句内添加(删除)序列中的元素,否则end函数的值可能会无效。
2.由于for auto是c++11新特性,所以在使用vscode时可能会报错,需要在配置文件或CMakeLists中添加c++11特性。
如在CMakeLists文件中添加语句set(CMAKE_CXX_STANDARD 11)或set(CMAKE_CXX_FLAGS “-std=c++11”)

在ros使用for auto报错相关推荐

  1. 关于在ROS kinetic下arbotix报错的问题

    最近在学习ros过程中 出现了一个包错误  ERROR:cannot launch node of type [arbotix_python/arbotix_driver]:arbotix_pytho ...

  2. Ubuntu16.04安装ROS后运行gazebo报错 it says it‘s incompatible with that RT“‘ failed.

    Ubuntu16.04系统安装ROS(kinetic版本)后,使用ROS包含的gazebo时报错,gzserver: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfs ...

  3. ubuntu先anaconda中python3与ros共存时opencv报错

    Q: ubuntu使用python调用opencv报错ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefin ...

  4. 有关ros kinetic无法安装报错unmet dependencies及解决

    背景: 之前出了点问题,重装了ubuntu16.04,也面临着ros重装.跟着官方安装教程http://wiki.ros.org/kinetic/Installation一步一步走到安装 sudo a ...

  5. ROS python3使用cv_bridge报错,在melodic中使用python3 cv_bridge

    ROS cv_bridge报错:在melodic中使用python3+cv_bridge 问题描述 解决方案 使用方法 2022.7补充 问题描述 ROS与opencv之间的数据类型转换是通过cv_b ...

  6. 【无标题】Realsense ROS驱动安装以及报错处理

    参考官网:https://github.com/IntelRealSense/realsense-ros 1.命令行安装:这种方式比较简单,没有报错.需要注意的是安装位置需要自己找,后续修改launc ...

  7. 【ROS】虚拟机VMware 安装ROS 一条龙教程+部分报错解决

    前言 Linux下安装ROS真是太多坑了,如何在Linux下安装ROS呢?博主带你少走弯路! 目录 前言 第一步:配置软件源 1.打开设置 2.打开软件与更新 3.选源 第二步:设置sources.l ...

  8. 【Linux学习】虚拟机VMware 安装ROS 一条龙教程+部分报错解决

    前言 Linux下安装ROS真是太多坑了,如何在Linux下安装ROS呢?博主带你少走弯路! 目录 前言 第一步:配置软件源 1.打开设置 2.打开软件与更新 3.选源 第二步:设置sources.l ...

  9. ROS msg 文件修改 报错

    修改msg文件报错 自己定义msg文件,catkin_make没有问题,但是当自己修改了msg文件内容之后catkin_make就会出现错误 The dependencies of the messa ...

最新文章

  1. 视频专辑:Photoshop基础视频教程
  2. C# 代码注释规范文档
  3. js中replace未定义_js中replace的用法
  4. postmain请求中午乱码_完美解决Get和Post请求中文乱码的问题
  5. ExtJs2.0学习系列(5)--Ext.FormPanel之第二式
  6. Vue之v-if, v-else, v-show, v-for, v-bind
  7. 19.高性能MySQL --- 锁的调试
  8. 如何安装ArchLinux
  9. java的PrintWriter打印流详解
  10. HTMLTestRunner文件
  11. yylabel 加载html,YYLabel 自动布局 富文本文字点击事件
  12. QQ玩一玩广告与音效使用总结
  13. 如何将经典算法与人工智能结合?NeurIPS 2021
  14. python数字不同数之和_python练习 数字不同数之和+人名最多数统计
  15. 您的项目已获得 1000 枚 Star !
  16. mui在线加载html,MUI 预加载页面
  17. 赣州旅游职业学校学计算机,赣州旅游职业学校是公办的吗
  18. 点云法线估计:C++实现
  19. python+opencv+dlib实现人脸检测与表情识别
  20. 分享图片去水印几个工具-图片去除水印最好用的工具

热门文章

  1. 树莓派安装TensorFlow并使用[一步到位]
  2. html,css基础知识点参考pink老师的ppt
  3. [20个项目学会BBC micro:bit编程] 18-红外循迹(黑线)
  4. 等保-机房来访人员进出登记表
  5. 亚信安全认证acse_构建中国云生态|华云数据与亚信安全完成产品兼容互认证 携手推出“云安全防护联合解决方案”...
  6. 用VHDL实现有限状态机
  7. open函数和fopen函数区别
  8. 【STM32】STM32 SDIO SD卡读写测试(二)-- SD_Init之Power On阶段
  9. 多种分隔符分割字符串
  10. RT-ThreadBearPi 开发笔记 -- 为小熊派开发板制作 RT-Thread BSP 包