Почему в данном случае ошибка "C2100 недопустимое косвенное обращение " из файла xtree?
Мой код:
#include <iostream>
#include <map>
#include <ctime>
int main() {
srand(time(0));
int sum, quan;
std::map<int, int> quantity;
for (int i = 0; i < 500; i++) {
sum = rand() % 6 + 1 + rand() % 6 + 1;
quan = quantity[sum] + 1;
quantity.insert(sum, quan);
}
for (auto &it : quantity) {
std::cout << "Sum: " << it.first << " quantity: " << it.second << std::endl;
}
}
Кусок кода от куда ошибка (код не мой, мне его сам компилятор после выполнения выдал...):
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Просто insert, который вы используете как
quantity.insert(sum, quan);
с двумя параметрами — используется для вставки диапазона через итераторы. Но у вас sum и quan вовсе не итераторы...
Делайте так:
quantity.insert(std::make_pair(sum, quan));