我熟悉标准库关联容器映射和序列容器映射。但是我似乎无法理解集合的目的。在尝试在线理解 std::set 时,我遇到了以下语句
集合是存储值并允许轻松查找的 STL 容器。例如,您可能有一组字符串:
std::set<std::string> S;
您可以通过编写添加新元素
S.insert("foo";.
一个集合不能包含多个具有相同键的元素,因此如果 S 已经包含字符串“foo”,则 insert 不会添加任何内容;相反,它只是查找旧元素。返回值包含一个状态码,指示是否插入了新元素
所以从上面的文字来看,在我看来,set 容器只存储键,而不像存储键和值的映射。如果这是真的,为什么它是关联容器而不是像 map 这样的序列容器?