我已经使用 Java 很长时间了,决定换用 C++。我已经列出了这样的 list :
std::list <Player*> players;
我想做的就是从此列表中获取特定元素。我记得在 Java 中调用了一个“.get(index)”方法,但我在 C++ 中找不到类似的东西。 谁能帮我? 谢谢。
最佳答案
std::list
类不提供随机访问。您可以将其视为一个链表。
对于随机访问,请改用 std::vector
或 std::deque
。然后你可以阅读players[index]
。
如果您致力于 std::list
,那么您可以通过将迭代器推进到您需要的位置来获得线性时间 随机访问。例如:
std::list<Player*>::const_iterator it = players.begin();
std::advance(it, index);
现在 *it
指的是你想要的元素。如果你有 C++11 或更高版本,你可以将上面的内容缩短为一条语句:
auto it = std::next(players.begin(), index);
关于c++ - 如何从 std::list 中获取特定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48345898/