У меня проблемы с сетами весь день. Одни я могу решить, другие нет. Этот беспокоит меня с самого утра, и у меня кончилось терпение. Пожалуйста, помогите, могучий стекопоток!
Итак, у меня есть набор, который содержит мой собственный объект, который называется "vect" и основан на eigen :: matrix. Это означает, что я получаю значения из векторов с помощью оператора [].
set<vect*> *tvps=getTheSet();
for (set<vect*>::iterator iter = tvps->begin(); iter != tvps->end(); ++iter)
{
vect v= **iter; // Don't really know why two asterisks,
// but my compiler would complain
int x=v[0];
int y=v[1];
doStuffWith( v[0],v[1]);
}
Теперь это скомпилирует и запустит и все. Но значения, которые я получаю от итератора, составляют 30% мусора:
x: 110 y: 90
x: 230 y: 130
x: 250 y: 100
x: 230 y: 130
x: 110 y: 290
x: 140 y: 260
x: 180 y: 280
x: 150 y: 210
x: -2147483648 y: 0
x: 180 y: 280
x: 170 y: 230
x: 240 y: 270
x: -2147483648 y: 0
x: -429917536 y: 0
x: 0 y: -2147483648
Я проверил в точке, где набор был собран, какие значения были вставлены. Только те, которые между 10 и 300 .., как и предполагалось. Как я могу найти других в этом? Я облажался с итератором?