使用矢量,我可以执行以下操作:
vector<int> myvec (4,100);
int first = myvec.at(0);
Run Code Online (Sandbox Code Playgroud)
我有以下几套:
set<int> myset;
myset.insert(100);
int setint = ????
Run Code Online (Sandbox Code Playgroud)
如何访问我在集合中插入的元素?
Mic*_*fik 14
set<int>::iterator iter = myset.find(100);
if (iter != myset.end())
{
int setint = *iter;
}
Run Code Online (Sandbox Code Playgroud)
wil*_*ell 12
您无法通过索引访问set元素.您必须使用迭代器访问元素.
set<int> myset;
myset.insert(100);
int setint = *myset.begin();
Run Code Online (Sandbox Code Playgroud)
如果您想要的元素不是第一个,那么将迭代器推进到该元素.您可以查看集合以查看元素是否存在,使用set<>::find(),或者您可以迭代集合以查看其中的元素.
小智 7
要访问特定索引,您可以使用以下命令:
int first = *next(myset.begin(),0);
int third = *next(myset.begin(),2);
Run Code Online (Sandbox Code Playgroud)
下一个函数将设置迭代器返回到该位置。通常,不使用此函数,因为它的性能是线性的。但是,如果集合足够小并且需要访问某些特定索引,则可以使用它来避免编写手动迭代循环。
您还可以使用这种方法:
set<int>:: iterator it;
for( it = s.begin(); it!=s.end(); ++it){
int ans = *it;
cout << ans << endl;
}
Run Code Online (Sandbox Code Playgroud)