[学习SLAM]视觉里程计 /C++中双冒号(::) 和 冒号(:) 的用法

//-- 验证E=t^R*scale
Mat t_x = ( Mat_<double> ( 3,3 ) <<
            0,                      -t.at<double> ( 2,0 ),     t.at<double> ( 1,0 ),
            t.at<double> ( 2,0 ),      0,                      -t.at<double> ( 0,0 ),
            -t.at<double> ( 1.0 ),     t.at<double> ( 0,0 ),      0 );
clc;clear all;close all
tR=[-0.02879601157010515, -0.5666909361828468, -0.0470095088643612;
 0.5570970160413594, -0.04958801046730466, 0.8283204827837464;
 -0.009600370724841524, -0.8224266019846687, -0.02034004937801313];

essential_matrix=[-0.0203618550523478, -0.400711003811844, -0.03324074249823884;
 0.3939270778216363, -0.03506401846698049, 0.5857110303721021;
 -0.006788487241440237, -0.5815434272915688, -0.0143825868448625];
% 验证E=t^R*scale
scale=tR./essential_matrix
scale =

    1.4142    1.4142    1.4142
    1.4142    1.4142    1.4142
    1.4142    1.4142    1.4142

 

c++中for(auto count : counts)

for ( DMatch m: matches )

将 counts 容器中的每一个元素从前往后枚举出来,并用 count 来表示,类似于Java中的 for each 语句,举个栗子:

#include<iostream>
#include<vector>
using namespace std;
int main() {
    int a[] = { 1,2,3,5,2,0 };
    vector<int>counts(a,a+6);
    for (auto count : counts)
        cout<< count<< " ";
    cout << endl;
    return 0;
}

运行的效果是:


 

C++中双冒号(::) 和 冒号(:) 的用法

双冒号(::)的用法

表示 “域操作符”

例如:声明了一个类A,在类A中声明一个成员函数void foo(),但没有在类A的声明中给出函数foo的定义,那么在类外定义foo时,就要写成

void A::foo()

表示foo()函数是类A的成员函数。

表示引用成员函数和变量,作用域成员运算符

例如:

System::Math::Sqrt()

相当于

System.Math.Sqrt()

 

冒号(:)的用法

构造函数后面的冒号

构造函数后面的冒号起分割的作用,是类给成员变量赋值的方法,初始化列表,更适用于const成员变量(冒号{} )

例如:

    struct foo{
           foo()
           :Node("node"), _temp(temp)
           {}
    };

public:和private:后面的冒号

public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个public: 或 private: 出现为止。private: 为默认处理。

例如:

    public:
       int foo(int a){}
     
    private:
       int a;
       std::string s;

   类名冒号后面

    类名冒号后面的是用来定义类的继承

例如:

    class 派生类名 : 继承方式 基类名
    {
         派生类的成员
    };

继承方式:public,private和protected,默认处理是public

    表示机构内位域的定义(即该变量占几个bit空间)

例如:

    typedef struct _foo{
          int a:4;
          int b;
    };foo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值