我有大量的数据集。我希望使用数组存储这些数据。更严重的是,
在我的数组中,我想使用3列,例如Number number_of_points point_numbers
。为此,我可以创建一个像mypointstore[][]
这样的数组(例如mypointstore[20][3]
)。但是我的问题是我想在第3列中存储点号,例如20, 1, 32, 9, 200, 12
等(mypointstore[0][0]= 1
,mypointstore[0][1]= 6
和mypointstore[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> >
,但是我通常发现后者更容易理解。