Я пишу метод put (), который должен выводить карту с правильными значениями. Мой метод печати работает, но фактический метод не создает карту правильно. Ключами являются строки и значения map - это набор строк. Мой метод также имеет тип T для работы с другими значениями, но он предназначен для строк.
Я пытаюсь использовать гнездо для каждого l oop, чтобы получить входной набор и использовать его для ключей на карте. Далее для каждого l oop выполняется итерация по множеству и вставка значений в соответствующие ключи, если ключ не равен значению. Вот где возникает моя проблема, но я Я не уверен, как это исправить.
input: set = {"a", "b", "c", "d"}
output: ожидаемые --vs - фактический
Ключ: a Значение: b c d --- Ключ: a Значение: b c d
Ключ: b Значение: a c d - - Ключ: b Значение: ab c d
Ключ: c Значение: abd --- Ключ: c Значение: ab c d
и т. Д. ..
void
put (const Container& c)
{
std::map<T, std::set<T>> map;
std::set<T> set;
for(auto i : c)
{
for(auto j : c)
{
if(i != j) //this is where I think I am wrong
{
set.insert(j);
map[i] = set;
}
}
}
//my printing method is here but I left it out for simpler code
}
int
main ()
{
set<string> v = {"a", "b", "c", "d"};
manager.put(v);
}