web-dev-qa-db-ja.com

セット内の要素にアクセスしますか?

ベクトルを使用すると、次のことができます。

vector<int> myvec (4,100);
int first = myvec.at(0);

私は次のセットを持っています:

set<int> myset;
myset.insert(100);
int setint = ????

セットに挿入した要素にアクセスするにはどうすればよいですか?

15
mr.bio
set<int>::iterator iter = myset.find(100);
if (iter != myset.end())
{
    int setint = *iter;
}
14

インデックスでセット要素にアクセスすることはできません。イテレータを使用して要素にアクセスする必要があります。

_set<int> myset;
myset.insert(100);
int setint = *myset.begin();
_

必要な要素が最初の要素でない場合は、イテレータをその要素に進めます。 set<>::find()を使用して、セットを調べて要素が存在するかどうかを確認するか、セットを反復処理して、そこにどの要素があるかを確認できます。

11
wilhelmtell

このアプローチを使用することもできます:

 set<int>:: iterator it;
 for( it = s.begin(); it!=s.end(); ++it){
    int ans = *it;
    cout << ans << endl;
 }
2
Rafsan