c++ 的问题杂记 ---------

本文深入探讨C++编程中的关键概念,如包引入、模板别名、智能指针等,并解析ROS(机器人操作系统)中NodeHandle的作用,以及宏定义、特定库的使用技巧,适合初学者和进阶开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.    添加包,为什么有<> , 有 ” ”  ?
  “fileName” 会从当前目录开始搜索,<fileName> 会从系统include目录开始搜索
2.    #pragma once   第一行,这个是啥?
  防止头文件被多次include。
3.    template <typename T>    using Batch = std::vector<T>;  是啥?
  为 std::vector<T> 定义别名 Batch
4.    std::lock_guard<std::mutex> lock(image_lock_);
  std::lock_guard 是与mutex配合使用,把锁放到lock_guard中时,mutex自动上锁,lock_guard析构时,同时把mutex解锁。 
5.    auto 是啥?
  auto让编译器通过初始值来推算变量的类型,所以auto定义的变量必须有初始值。 
6.    Size_t 跟 int的区别--
  size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。
  在32位架构中被普遍定义为:typedef   unsigned int size_t;
  而在64位架构中被定义为:typedef  unsigned long size_t;
7.    ros::NodeHandle    ros包中的一些操作
  NodeHandle 句柄,可以为不同级别的命名空间。
8.    在写nodelet的时候,显示宏定义失败,最后发现宏定义要写在include后面,猜测是因为宏定义中引用了头文件中的Class导致
12.    enc库  eg: enc::bitDepth
13.    sensor_msgs 库  sensor_msgs::Image 与 sensor_msgs::ImageConstPtr , sensor_msgs::ImagePtr的区别 (智能指针有关)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值