我们可以在c ++中创建数组吗?

时间:2017-10-20 19:18:16

标签: c++ c++11 stl

喜欢以下方式:

set<int> s[3];

我已经尝试过,但是在我试图通过编写s[i][j]来查找错误的行

时出错了
  

不匹配'operator []'

2 个答案:

答案 0 :(得分:3)

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

std::set不支持operator [],这就是您收到错误的原因:

  

不匹配&#39;运营商[]&#39;

而是使用find()以下列方式访问对象:

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

答案 1 :(得分:0)

索引不会访问集合的元素。 s [i]是(i-1)&#39;但s [i] [j]并不代表任何东西。您可以使用find函数检查集合中是否存在元素。例如s [i] .find(3)!= s [i] .end()。您可以使用for(int x:s [i]){}(C ++ 11及更高版本)或使用迭代器以排序顺序遍历元素。