我有大量的数据集。我希望使用数组存储这些数据。更严重的是,

在我的数组中,我想使用3列,例如Number number_of_points point_numbers。为此,我可以创建一个像mypointstore[][]这样的数组(例如mypointstore[20][3])。但是我的问题是我想在第3列中存储点号,例如20, 1, 32, 9, 200, 12等(mypointstore[0][0]= 1mypointstore[0][1]= 6mypointstore[0][2]={ 20, 1, 32, 9, 200, 12 })。我不知道在这种结构中使用数组是否可行?如果是这样,请帮助我解决此问题。

我曾尝试使用像map<int,int,vector<int>> mypointstore;这样的地图,但我不知道如何在此地图中插入数据;
我的一些代码在这里

map<int,int, vector<int>> mypointstore;
size=20;
For (int i=0; i<= size;i++){
Int det=0;
    For (int j=0; j<= points.size();j++){//points is a one of array with my points
        If (points.at(j)>Z1 && points.at(j) <=Z2){
    //Here i want to store i , det and poiznts.at(j) like i in 1st colum, det in 2nd and
     //pointnumber in 3rd colum) in each step of the loop it take a point
     //number   //which satisfied the if condition so it should be include into my
     // vector of map
det++;
}
}
    // at here i want to change total det value into 2nd element of my map so it like (0)(6)( 20, 1, 32, 9, 200, 12)
}


下一步类似的程序,因此应该最后确定

(0)(6)( 20, 1, 32, 9, 200, 12)
(1)(10)( 20, 1, 32, 9, 200, 12, 233, 80, 12, 90)
(2)(3)( 3, 15, 32)

最佳答案

在我看来,您可能想要一个结构向量,例如:

struct point_data {
    int number;
    std::vector<int> point_numbers;
};

std::vector<point_data> points;


我只输入了两个“列”,因为(至少据我了解)您的number_of_points可能是point_numbers.size()

如果要使用number查找其余数据,那么使用map的想法很有意义:

std::map<int, std:vector<int> > points;


您可以使用multimap<int, int>代替map<int, vector<int> >,但是我通常发现后者更容易理解。

08-26 09:45