有什么更好的(更干净、更易读和/或更高效)的方法:
std::list<Fruit*> Apples;
std::list<Fruit> Basket;
for (std::list<Fruit*>::iterator niApple(Apples.begin());
niApple != Apples.end(); niApple++) {
for (std::list<Fruit>::iterator niBasket(Basket.begin());
niBasket != Basket.end(); niBasket++) {
if (&(*niBasket) == *niApple) {
Basket.erase(niBasket);
break;
}
} // loop
} // loop
你会推荐什么?我主要需要将放置在篮子内的苹果手柄,以便从篮子中取出苹果而无需搜索(例如,通过固定数组内的索引)。但是,篮子需要在进程中分配和释放内存。