Вам нужно добавить еще один {}
для него. И обратите внимание, что временное не может быть связано с lvalue-ссылкой на неконстантный. (Они могут быть связаны с lvalue-ссылками на const или rvalue-ссылками.) Например,
class A {
unordered_map<string, unordered_set<string>> n_;
public:
A(const unordered_map<string, unordered_set<string>>& n) : n_{n} {}
//^^^^^
};
int main() {
A a{{{"C", {"A", "B"}}}};
// ^^^ ^^^ elements of unordered_set
// ^^^^^^^^^^ for the unordered_set
// ^^^^^^^^^^^^^^^^^ elements (std::pair) of unordered_map (only one here)
// ^^^^^^^^^^^^^^^^^^^ for the unordered_map
// ^^^^^^^^^^^^^^^^^^^^^ for A
return 0;
}
Полагаю, вы можете пропустить {}
для элементов (std::pair
) unordered_map
; Аналогичным образом, если вы хотите создать unordered_map
, содержащий два элемента, вы можете написать его как
A b{{{"C", {"A", "B"}}, {"F", {"D", "E"}}}};
ЖИТЬ