我们能用c++制作集合数组吗

Can we make array of sets in c++?

本文关键字:集合 数组 c++ 我们      更新时间:2023-10-16

类似以下方式:

set<int> s[3];

我试过了,但它在我试图通过写s[i][j]访问其元素的行中出现错误,错误显示

不匹配"operator[]">

问题不在于std::set-s的数组,而在于尝试访问集合内元素的方式。

std::set不支持operator [],这就是为什么您会收到错误:

不匹配"operator[]">

相反,使用find()以以下方式访问对象:

auto iter = s[i].find(<value>);
if (iter != s[i].end()) {
[..] // Do something with iter
}

集合的元素不被索引访问。s[i]是第(i-1)个集合,但s[i][j]没有任何意义。可以使用find函数检查集合中是否存在元素。例如,找到(3)=s[i].end()。您可以使用for(int x:s[i]){}(C++11及以上版本)或迭代器按排序顺序循环元素。