C++ opencv小试1

         今天开始总结C++相关的内容,C++复杂度高,可以解决十分复杂的问题,对于基本原则来说 windows与linux并无太大的区别,在链接动态库的问题上,二者则有较大的差 异。

        对于数据类型:

                 int       unsigned int    char    unsigned char    double    这些是最基本的 总体为3类   其中 关于char的东西比较复杂    char 可以 做运算  char与int的 运算过程中 是可以无视类型的 ,因为运算过程会在内存中进行,最后的等号规定的数的取舍。显然这会越界,应该避免这种情况,(阀值取舍用saturate_cast<char> 等来规定 这样的好处是不会越界,这是opencv里特有的),在最后的等号后,内存计算出来的值会根据等号左边的类型对数据进行划归,小数变整数则小数点后的数据会舍弃,C++的类型规定十分的严格。

         对于字符串类型:

                  比较复杂,因为指针表示字符串且与char相关联时,会出现特殊的情况。这是非常不好的 ,但用char表示单个字符时,完全与其他的类型机制相同,所以我们希望用string类型来表示字符串,char*a=“dadadad”; string strb=a;这样是可以的,也就是说 string兼容char的数组,可以用其初始化自己,反之则不行。可以用b[1]这样来得到字符,字符和字符串是不同的东西 他们不能够进行交互的工作。string.insert(0,2,‘a’)在第0个位置 插入2个a,string.push_back(‘a’)尾部插入a,这些插入的都是字符。

         对于数据,我们希望初始化之后在使用!在用string[8]形式访问string时,string必须是有大小的,可以由等号 初始化化 插入等来改变其大小,如果没有这些操作 显示一点的就是用string.resize(10),来定义其大小。这样之后才能使用。

        对于数组,当然字符串也可以看成是数组,我们引入比较严格的Vector来作为数组,它的好处是有STL算法的支持,而且它的每一个内置的容纳点都是对应类型的一个实例,没有字符与字符串的混淆,可以轻松访问vector[1];

        vector<vector<vector<int> > > feng ;
        feng.resize(2);
        feng[0].resize(1);
        feng[0][0].resize(2);
        feng[0][0][0]=9;
        cout<<feng.size()<<endl;//2
        cout<<feng[0][0][0]<<endl;//9

多维度的也不在话下,非常的好用。

        对于指针,我们用<tr1/memory>的shared_ptr来 它的好处是申请动态内存后不用析构,而且它的指针可以被引用,由于引用机制的存在,自定义的指针希望是用来构建动态内存的,而不是仅仅为了在函数传递中使用。由于我库的缺失 只能在定义时初始化 应该是可以用make_shared来初始的。但这也没关系,只要在函数中再定义一个指针然后将二个指针的值相等一下,这样由于智能特性,在函数中构建的动态内存能被外面的说继承,opencv也用了这个技术来存储(Mat),opencv绝对复制可以用clone,我们可以根据具体的值来逐个定义复制,直到内层无指针为止(一般来说,层数不会太多)。

         对于一种特殊的转换形式,也既有字符串向int或者float转化,str[2]这种都是字符,转换方法与前面相同,str=“121”这种呢?

 string feng("123");
    int a;
    stringstream ss;
    ss<<feng;
    ss>>a;
    cout<<a<<endl;

这样就搞定了!ss.str("")清空内容
    ss<<输出后 里面的内容就少了!所以不能单个一直无限输出。暂时只支持 int与float两种。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值