c++ - 如何从 std::list 中获取特定元素?

标签 c++ list

我已经使用 Java 很长时间了,决定换用 C++。我已经列出了这样的 list :

std::list <Player*> players;

我想做的就是从此列表中获取特定元素。我记得在 Java 中调用了一个“.get(index)”方法,但我在 C++ 中找不到类似的东西。 谁能帮我? 谢谢。

最佳答案

std::list 类不提供随机访问。您可以将其视为一个链表。

对于随机访问,请改用 std::vectorstd::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/

相关文章:

c++ - 对于 DEA(数据加密算法),您会考虑在 Linux 上使用哪个库?

c++ - 指针容器问题

c++ - 复制指针列表没有循环

python-3.x - 当Python中的嵌套列表内满足值时,如何结束While循环?

Python输入限制和重新提升

java - 检查列表中子类的实例并返回对象

java - 在共享对象 dll 中创建的 JNA 空闲内存

c++ - 在可变参数模板中使用大括号括起来的初始值设定项列表?

C++ 在 8086 中获取类/结构地址

c# - 如何将实际控件存储在列表中?