Как я могу сообщить своей функции обратного вызова, какой элемент вектора вызвал ее? - PullRequest
0 голосов
/ 07 декабря 2010

У меня есть 2 вектора, которые создают новые кнопки в случайных местах.Push_back запускается таймером.Каждый push_back будет иметь новое случайное местоположение и новый рандвал.Нажатие на кнопку запускает cb_addscore.

m.push_back(new mole(Point(randx*50+25,randy*50+25),randval));
v.push_back(randval);
mb.push_back(new Button(Point(randx*50,randy*50),50,50,"1",cb_addscore));

В функции обратного вызова cb_addscore я пытаюсь удалить кнопку, которая ее сработала, и это будет определенный элемент векторов m и mb.

Но как я могу сообщить cb_addscore, какой элемент вызвал его?

1 Ответ

1 голос
/ 07 декабря 2010

Возможно, вы захотите использовать ассоциативный контейнер вместо вектора и передать дополнительный ключ функции.

Вы можете найти std::map полезным для этой задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...