I wszyscy,Jak zdobyć pierwszy element std :: set
Znalazłem dziwny błąd w moim oprogramowaniu.
Wewnątrz pętli while, gdzie mogę usunąć elementy z std :: set, chcę zawsze wziąć pierwszy element, aż pojemnik jest pusty:
std::set< int*> nodes;
// Fill nodes
for (int i=0; i<10;i++)
nodes.insert(new int);
//
while (!nodes.empty())
{
int* pivot = (*nodes.begin());
// do some operation with pivot erasing some elements from nodes
}
Uważam, że wdrożenie pierwszego elementu ten sposób prace z gcc, ale nie z MSVC, zawiesza się tam, gdzie próbuję wyłuskać iterator (*nodes.begin())
.
Czy dwie implementacje std :: set zachowują się inaczej?
Chciałbym mieć strukturę danych bez różnic w implementacji, czy to możliwe?
Chyba muszę zmienić strukturę danych dla tego rodzaju operacji
co dzieje się po twojej dereference? – Nick
Co to jest "wykonaj operację z pivot wymazywanie niektórych elementów z węzłów" –
po prostu dereferencja taka * (nodes.begin()) – v01d