#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <math.h>
#include <cv.h>
#include <highgui.h>
#include<cstdlib>
typedef double pixel_t;
#include <vector>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/features2d/features2d.hpp>  
#include <opencv2/nonfree/features2d.hpp>  
#include <opencv2/nonfree/nonfree.hpp>
using namespace std;
using namespace cv;

int main()
{
    int m = 2;
    int n = 3;
    //double * b = new double[n];//动态分配一个有n个数据的数组
    double **b;  //假定数组第一维长度为m, 第二维长度为n
        b = new double *[m];//动态分配空间
    for (int i = 0; i<m; i++)
        {
             b[i] = new double[n];
         }
    //double b[2][3];
    size_t k = 2;
    struct aa
    {
        double a[3];
    };
    vector<aa> f;
    f.resize(k);
    for (size_t i = 0; i < 3; i++)
    {
        f[0].a[i] = 1.5*i;
        f[1].a[i] = 0.5*i;
    }

    b[0][0] = *f[0].a;
    b[0][1] = *(f[0].a + 1);
    b[0][2] = *(f[0].a + 2);
    b[1][0] = *f[1].a;
    b[1][1] = *(f[1].a + 1);
    b[1][2] = *(f[1].a + 2);
    cout << *f[0].a << endl;
    cout << *(f[0].a + 1) << endl;
    cout << *(f[0].a + 2) << endl;
    cout << *f[1].a << endl;
    cout << *(f[1].a + 1) << endl;
    cout << *(f[1].a + 2) << endl;
    cout << b[0][0] << endl;
    cout << b[0][1] << endl;
    cout << b[0][2] << endl;
    cout << b[1][0] << endl;
    cout << b[1][1] << endl;
    cout << b[1][2] << endl;
    vector<aa>(f).swap(f);
    //释放动态分配的数组
    for (int i = 0; i<m; i++)
    {
        delete[] b[i];
    }    
    delete b;
    cout << b[1][1] << endl;
    cout << f.size() << endl;//输出当前容器内存储元素个数
    cout << f.capacity() << endl; // 输出容器能存储数据的个数
    system(\"pause\");
    return 0;
}

收藏 打印