• <i id='rlXUz'><tr id='rlXUz'><dt id='rlXUz'><q id='rlXUz'><span id='rlXUz'><b id='rlXUz'><form id='rlXUz'><ins id='rlXUz'></ins><ul id='rlXUz'></ul><sub id='rlXUz'></sub></form><legend id='rlXUz'></legend><bdo id='rlXUz'><pre id='rlXUz'><center id='rlXUz'></center></pre></bdo></b><th id='rlXUz'></th></span></q></dt></tr></i><div id='rlXUz'><tfoot id='rlXUz'></tfoot><dl id='rlXUz'><fieldset id='rlXUz'></fieldset></dl></div>
    <legend id='rlXUz'><style id='rlXUz'><dir id='rlXUz'><q id='rlXUz'></q></dir></style></legend>
  • <small id='rlXUz'></small><noframes id='rlXUz'>

          <bdo id='rlXUz'></bdo><ul id='rlXUz'></ul>
      1. <tfoot id='rlXUz'></tfoot>

        给定位置,如何获取列表中的某个元素?

        时间:2024-05-11
          <bdo id='2OEGT'></bdo><ul id='2OEGT'></ul>
          <i id='2OEGT'><tr id='2OEGT'><dt id='2OEGT'><q id='2OEGT'><span id='2OEGT'><b id='2OEGT'><form id='2OEGT'><ins id='2OEGT'></ins><ul id='2OEGT'></ul><sub id='2OEGT'></sub></form><legend id='2OEGT'></legend><bdo id='2OEGT'><pre id='2OEGT'><center id='2OEGT'></center></pre></bdo></b><th id='2OEGT'></th></span></q></dt></tr></i><div id='2OEGT'><tfoot id='2OEGT'></tfoot><dl id='2OEGT'><fieldset id='2OEGT'></fieldset></dl></div>
        • <tfoot id='2OEGT'></tfoot>
            <legend id='2OEGT'><style id='2OEGT'><dir id='2OEGT'><q id='2OEGT'></q></dir></style></legend>

            <small id='2OEGT'></small><noframes id='2OEGT'>

              <tbody id='2OEGT'></tbody>
                  本文介绍了给定位置,如何获取列表中的某个元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  所以我有一个列表:

                  list<Object> myList;
                  myList.push_back(Object myObject);
                  

                  我不确定,但我相信这将是数组中的第 0"个元素.有什么我可以使用的函数可以返回myObject"?

                  I'm not sure but I'm confident that this would be the "0th" element in the array. Is there any function I can use that will return "myObject"?

                  Object copy = myList.find_element(0);
                  

                  ?

                  推荐答案

                  如果你经常需要访问序列的第 N 个元素,std::list,它被实现为一个双向链表,可能不是正确的选择.std::vectorstd::deque 可能会更好.

                  If you frequently need to access the Nth element of a sequence, std::list, which is implemented as a doubly linked list, is probably not the right choice. std::vector or std::deque would likely be better.

                  也就是说,您可以使用 std::advance 获取第 N 个元素的迭代器:

                  That said, you can get an iterator to the Nth element using std::advance:

                  std::list<Object> l;
                  // add elements to list 'l'...
                  
                  unsigned N = /* index of the element you want to retrieve */;
                  if (l.size() > N)
                  {
                      std::list<Object>::iterator it = l.begin();
                      std::advance(it, N);
                      // 'it' points to the element at index 'N'
                  }
                  

                  对于不提供随机访问的容器,如std::liststd::advance在迭代器上调用operator++N 次.或者,如果您的标准库实现提供了它,您可以调用 std::next:

                  For a container that doesn't provide random access, like std::list, std::advance calls operator++ on the iterator N times. Alternatively, if your Standard Library implementation provides it, you may call std::next:

                  if (l.size() > N)
                  {
                      std::list<Object>::iterator it = std::next(l.begin(), N);
                  }
                  

                  std::next 有效地封装了对 std::advance 的调用,从而更容易地以更少的次数推进迭代器 N 次行代码和更少的可变变量.std::next 是在 C++11 中添加的.

                  std::next is effectively wraps a call to std::advance, making it easier to advance an iterator N times with fewer lines of code and fewer mutable variables. std::next was added in C++11.

                  这篇关于给定位置,如何获取列表中的某个元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:使用 STL 容器进行中值计算时,正确的方法是什么? 下一篇:考虑到复制构造的要求,如何在 C++11 中编写有状态分配器?

                  相关文章

                1. <small id='AhDju'></small><noframes id='AhDju'>

                  <tfoot id='AhDju'></tfoot>

                    <bdo id='AhDju'></bdo><ul id='AhDju'></ul>
                    1. <legend id='AhDju'><style id='AhDju'><dir id='AhDju'><q id='AhDju'></q></dir></style></legend>

                      <i id='AhDju'><tr id='AhDju'><dt id='AhDju'><q id='AhDju'><span id='AhDju'><b id='AhDju'><form id='AhDju'><ins id='AhDju'></ins><ul id='AhDju'></ul><sub id='AhDju'></sub></form><legend id='AhDju'></legend><bdo id='AhDju'><pre id='AhDju'><center id='AhDju'></center></pre></bdo></b><th id='AhDju'></th></span></q></dt></tr></i><div id='AhDju'><tfoot id='AhDju'></tfoot><dl id='AhDju'><fieldset id='AhDju'></fieldset></dl></div>