Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::move_iterator<Iter>::operator[]

      From cppreference.com
      <cpp‎ |iterator‎ |move iterator
       
       
      Iterator library
      Iterator concepts
      Iterator primitives
      Algorithm concepts and utilities
      Indirect callable concepts
      Common algorithm requirements
      (C++20)
      (C++20)
      (C++20)
      Utilities
      (C++20)
      Iterator adaptors
      Range access
      (C++11)(C++14)
      (C++14)(C++14)  
      (C++11)(C++14)
      (C++14)(C++14)  
      (C++17)(C++20)
      (C++17)
      (C++17)
       
       
      /* unspecified */ operator[]( difference_type n)const;
      (constexpr since C++17)
      (until C++20)
      constexpr reference operator[]( difference_type n)const;
      (since C++20)

      Returns a reference to the element at specified relative location.

      Contents

      [edit]Parameters

      n - position relative to current location

      [edit]Return value

      std::move(current [n])(until C++20)ranges::iter_move(current + n)(since C++20)

      [edit]Notes

      The return type is unspecified because the return type of the underlying iterator'soperator[] is also unspecified (seeLegacyRandomAccessIterator).

      (until C++20)

      [edit]Example

      Run this code
      #include <cstddef>#include <iomanip>#include <iostream>#include <iterator>#include <list>#include <string>#include <vector> void print(auto rem,constauto& v){for(std::cout<< rem;constauto& e: v)std::cout<<std::quoted(e)<<' ';std::cout<<'\n';} int main(){std::vector<std::string> p{"alpha","beta","gamma","delta"}, q;    print("1) p: ", p); std::move_iterator it{p.begin()}; for(std::size_t t{}; t!= p.size();++t)        q.emplace_back(it[t]);      print("2) p: ", p);    print("3) q: ", q); std::list l{1,2,3};std::move_iterator it2{l.begin()};//  it2[1] = 13; // Compilation error: the underlying iterator// does not model the random access iterator//  *it2 = 999;  // Compilation error: using rvalue as lvalue}

      Possible output:

      1) p: "alpha" "beta" "gamma" "delta"2) p: "" "" "" ""3) q: "alpha" "beta" "gamma" "delta"

      [edit]See also

      accesses the pointed-to element
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/iterator/move_iterator/operator_at&oldid=177410"

      [8]ページ先頭

      ©2009-2025 Movatter.jp