У меня огромный набор данных. Я хочу использовать массив для хранения этих данных. Более подробно,
В моем массиве я хочу использовать 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)
1 ответ
Мне кажется, что вам, вероятно, нужен вектор структур, что-то вроде:
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> >
, но я обычно нахожу последнее более понятным.
Похожие вопросы
Новые вопросы
c++
C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который должен быть) скомпилирован с помощью компилятора C ++. Используйте тег для конкретной версии для вопросов, связанных с конкретной версией стандарта [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] или [C ++ 23] и т. Д. .
For
неfor
,Int
неint
,If
неif
,>>
не> >
, очень плохо отступ, слишком много аргументов шаблона дляstd::map
(vector<int>
не является компаратором).