0

我有一个团队向量,每个团队都有球员。我需要将所有玩家放入一个向量中,以便对它们进行排序并显示它们。我只需要知道如何获取vectorOfTeams[i].getVectorOfPlayers()[j]并将其转换为播放器的内存位置以存储到新数组中。不幸的是,这是我学校的作业,我根本不允许在任何地方发布代码。希望我说得通。

4

2 回答 2

0

您可以构造一个指向球员的指针向量,std::vector<Player*>使用指向所有球队的所有球员的指针填充它&vectorOfTeams[i].getVectorOfPlayers()[j],正如 Vaughn Cat 所指出的,并使用std::sort自定义比较器对指向球员的指针向量进行排序。

由于您将在此处处理指针,因此请确保所有实际的Player 对象仍然存在,也就是说,确保它们不是局部变量,而是例如动态创建的。

于 2013-09-13T00:55:47.477 回答
0

在最直接的想法中,&(somePlayerVector[i])应该给你一个“有效”的地址。

您可能会发现它适用于大多数情况,但这不是保留指针的理想方式。

Player仅保证在访问时存在。有很多事情可能会出错:向量可以重新分配,然后内存位置不再有效。

更安全的方法是在目标数组中保留另一个对象,该对象是原始向量中Player的副本,这样在获取PlayerPlayer

于 2013-09-16T09:20:24.697 回答