gpt4 book ai didi

c++ - 如何从C++ List中获取指定索引处的元素

转载 作者:可可西里 更新时间:2023-11-01 17:16:10 25 4
gpt4 key购买 nike

我有一个列表:

list<Student>* l;

我想获取指定索引处的元素。示例:

l->get(4)//getting 4th element

list 中是否有函数或方法使其能够这样做?

最佳答案

std::list 没有随机访问迭代器,所以你必须从前面的迭代器开始步进 4 次。您可以手动或使用 std::advance 执行此操作, 或 std::next在 C++11 中,但请记住,列表的两个 O(N) 操作。

#include <iterator>
#include <list>

....

std::list<Student> l; // look, no pointers!
auto l_front = l.begin();

std::advance(l_front, 4);

std::cout << *l_front << '\n';

编辑:原来的问题也问了 vector 。这现在无关紧要,但仍然可以提供信息:

std::vector 确实有随机访问迭代器,因此您可以通过 std::advance, std::next 在 O(1) 中执行等效操作如果您有 C++11 支持、[] 运算符或 at() 成员函数:

std::vector<Student> v = ...; 
std::cout << v[4] << '\n'; // UB if v has less than 4 elements
std::cout << v.at(4) << '\n'; // throws if v has less than 4 elements

关于c++ - 如何从C++ List中获取指定索引处的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16747591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com