Ответ 1
set<int>::iterator iter = myset.find(100);
if (iter != myset.end())
{
int setint = *iter;
}
С помощью вектора я могу сделать следующее:
vector<int> myvec (4,100);
int first = myvec.at(0);
У меня есть следующий набор:
set<int> myset;
myset.insert(100);
int setint = ????
Как я могу получить доступ к элементу, который я вставил в набор?
set<int>::iterator iter = myset.find(100);
if (iter != myset.end())
{
int setint = *iter;
}
Вы не можете получить доступ к элементам набора по индексу. Вы должны получить доступ к элементам с помощью итератора.
set<int> myset;
myset.insert(100);
int setint = *myset.begin();
Если нужный элемент не первый, переместите итератор в этот элемент. Вы можете посмотреть в наборе, чтобы увидеть, существует ли элемент, используя set<>::find()
, или вы можете выполнить итерацию по набору, чтобы увидеть, какие элементы существуют.
Вы также можете использовать этот подход:
set<int>:: iterator it;
for( it = s.begin(); it!=s.end(); ++it){
int ans = *it;
cout << ans << endl;
}