【发布时间】:2016-10-01 00:41:18
【问题描述】:
我想使用std::set(或std::vector)的元素设置std::map 的键。
类似下面的...
std::set<int> keys = { 3,4,6 };
std::map<int,string> results(keys); // syntax error
这可以在不显式迭代集合的情况下完成吗?
【问题讨论】:
-
1) 你有什么特别的原因吗? 2) 你希望值字符串是什么?
-
如果这是可能的,我会感到非常惊讶,因为访问该语句产生的未初始化值不应该是允许的行为。
-
@Beta: 1) 我想创建一个 API,允许简洁地指定键(不考虑值)。 2)我希望该值被默认初始化。
-
但是为什么你不想明确地迭代集合呢?除非您有特定原因,否则我认为这更多是关于编码风格的问题。
-
@Brian:是的,它本质上是为了风格。我只是想知道是否有一种非常简洁的方法来完成分配。基于the similarities between the two containers,这似乎是一件很自然的事情。