Как отобразить двумерный вектор, удваивающийся на строку? - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь отобразить 2d вектор на строку; например, в частности, я хочу назначить каждой отдельной строке свою правильную строку, например, 1, 2, 7 - да.

Кроме того, что, если я хочу присвоить другой ключ тому же значению?

В строке 1 и строке 2 есть значение 2, и я хочу присвоить да 2 в строке 1 и присвоить нет 2 в строке 2, как мне это сделать?

строка 1: {1, 2, 7} сопоставлена ​​с "Да"

строка 2: {2, 3, 4} сопоставлены с «Нет»

строка 3: {5, 7, 8} сопоставлена ​​с "Да"

Мой 2D-вектор:

 int N = 3;
 int M = 3;
vector<vector<double>> matrix2d(N, vector<double>(M)); 

Мой код для первого ряда не работает:

map < vector<double>, string > map_of_strings;
map_of_strings = {{matrix2d[0][0], matrix2d[0][1], matrix2d[0][2]}, "yes"};

Я получаю сообщение об ошибке:

1>d:\practice\finalproject\finalproject\source.cpp(118): error C2552: 'map_of_strings' : non-aggregates cannot be initialized with initializer list

1 Ответ

0 голосов
/ 18 ноября 2018

Чтобы присвоить единственное значение, вам нужно поступить так:

map_of_strings [{matrix2d[0][0], matrix2d[1][0], matrix2d[2][0]}] = "yes";

или так:

map_of_strings [{1, 2, 7}] ="yes";

Затем вы можете проверить, что входит в данную комбинацию:

cout << map_of_strings [{matrix2d[0][0], matrix2d[1][0], matrix2d[2][0]}] << endl;

Если вы хотите инициализировать карту с несколькими значениями, вам нужно указать несколько пар {ключ, значение} в фигурной скобке:

map < vector<double>, string > map_of_strings = { {{1, 2, 7},"yes"}, 
                                                  {{2, 3, 4},"no"},
                                                  {{5, 7, 8},"yes"} }; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...