Копирование значений из Map в массив 256×256 в программе на C ++

Я работаю над максимальным двусторонним алгоритмом сопоставления. У меня возникли проблемы с выяснением, как установить значения в массиве на основе ключа / значения на карте.

В конечном итоге мне нужно пройтись по моим строкам, которые соответствуют моим ключам на карте mymap. И тогда мне нужно установить соответствующий столбец в true (1) на основе значения в mymap. В конечном итоге это будет выглядеть примерно так

bool bpGraph[V][V] = { {0, 0, 0, 1, 0, ect.... 0}, //Key 1 Value 4
{0, 2, 0, 0, 0, ect.... 0}, // Key 2 Value 2
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0}
};

В настоящее время мой алгоритм выглядит следующим образом, вы можете видеть, что я озадачен тем, как перебирать карту, чтобы установить соответствующее значение в массиве:

inline void keep_window_open () {char ch; CIN >> ч;}
// Программа драйвера для проверки вышеуказанных функций

int main()
{

ifstream myfile("H:\\School\\CSC-718\\paths.txt");
std::map<int, int> mymap; // Create the map
pair<int,int> me; // Define the pair
char commas; // Address the comma in the file
int a, b;
vector<int> v;

while (myfile >> a >> commas >> b)
{
mymap[a] = b; // Transfer ints to the map
}
mymap;

// Этот код выше работает

    bool bpGraph[M][N]; // Define my graph array

for (int i = 0; i <mymap.count; i++) // the plan is to iterate through the keys M
and set the appropriate value true on N
{

bool bpGraph[M][N] = {

};
}
cout << "Maximum number networks "<< maxBPM(bpGraph); // run it through the BPM algorithim
keep_window_open();
return 0;
}

0

Решение

Вы не можете получить доступ к элементам карты, используя индекс. Вам нужно использовать итератор вместо этого. И в этом случае вы можете использовать более короткий цикл для каждого стиля:

for (const auto &val: mymap) {
bpGraph[val.first][val.second] = true;
}

Вам придется инициализировать bpGraph массив в ложь перед выполнением этого цикла.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector