我们可以将集合的值存储在变量中吗?就像我们可以在变量中存储数组的值

问题描述 投票:-1回答:4

我试图将集合的值存储到变量中。我尝试这个:

int a[1000],c[1000],ara[10000],t,n,i,j;
cin>>n;
set<int>st;
for(i=0; i<n; i++)
{
    cin>>a[i];
    st.insert(a[i]);
}
int p = st.size();
int m;
for(i=0;i<p;i++)
    m = st[i];

错误:与'operator []'不匹配(操作数类型为'std :: set '和'int')

c++ stl
4个回答
2
投票

std::set没有operator[],就像数组一样。您正在尝试遍历set中存储的值。您可以使用iterators


1
投票

A std::set不支持通过索引或键访问元素的概念。它的行为更像是数学集合。这就是为什么它不会重载operator[],并且您无法访问它的元素,例如数组,向量或映射。


0
投票

当遇到此类编译器错误时,表明您在使用stl容器,算法等错误的方法时,可以轻松地在cppreference.com上进行查找。这是set的示例。您会看到operator[]中没有std::set,因此出现了编译器错误。另外,在您的第一个for循环中,使用st1而不是st


-2
投票
operator[]
© www.soinside.com 2019 - 2024. All rights reserved.