В Java есть коллекция под названием ArrayList. Это позволяет программисту добавить объект типа T и удалить их, выдав простые методы, такие какИспользование списков C++
list.remove(object);
list.add(object);
Для C++ я обнаружил, что стандартные векторы используются только объекты значений, так что я не вижу, как достичь такая же функциональность. Дело в том, что я хочу сохранить ссылку на объект в другом месте, чтобы удалить его или добавить его с помощью какого-либо шаблона композиции. То, что я прошу, как добиться чего-то вроде этого в C++:
class Composite {
ArrayList<Composite> children = new ArrayList<>();
public void addChild(Composite child) {
children.add(child);
}
public void removeChild(Composite child) {
children.remove(child)
}
}
class Test{
public static void main() {
Composite a = new Composite();
Composite b = new Composite();
a.addChild(b);
a.removeChild(b);
// from here on a.children is empty.
}
}
Я даже не знаю, как укусить эту вещь в C++. Благодарю.
UPDATE: Благодаря ответу ResidenBiscuit и другие замечания, которые я смог выяснить, основной код для этого, который доступен на этом Pastebin URL: http://pastebin.com/h17hh3r4
Ищите контейнеры STL, 'std :: list' в частности. –
'std :: vector>' это то, что вы хотите, вы можете использовать 'std :: remove' для удаления элемента. –
yngccc