Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::begin,std::cbegin

      From cppreference.com
      <cpp‎ |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
      begincbegin
      (C++11)(C++14)
      (C++14)(C++14)  
      (C++11)(C++14)
      (C++14)(C++14)  
      (C++17)(C++20)
      (C++17)
      (C++17)
       
      Defined in header<array>
      Defined in header<deque>
      Defined in header<flat_map>
      Defined in header<flat_set>
      Defined in header<forward_list>
      Defined in header<inplace_vector>
      Defined in header<iterator>
      Defined in header<list>
      Defined in header<map>
      Defined in header<regex>
      Defined in header<set>
      Defined in header<span>
      Defined in header<string>
      Defined in header<string_view>
      Defined in header<unordered_map>
      Defined in header<unordered_set>
      Defined in header<vector>
      template<class C>
      auto begin( C& c)-> decltype(c.begin());
      (1)(since C++11)
      (constexpr since C++17)
      template<class C>
      auto begin(const C& c)-> decltype(c.begin());
      (2)(since C++11)
      (constexpr since C++17)
      template<class T,std::size_t N>
      T* begin( T(&array)[N]);
      (3)(since C++11)
      (noexcept since C++14)
      (constexpr since C++14)
      template<class C>

      constexprauto cbegin(const C& c)noexcept(/* see below */)

         -> decltype(std::begin(c));
      (4)(since C++14)

      Returns an iterator to the beginning of the given range.

      1,2) Returnsc.begin(), which is typically an iterator to the beginning of the sequence represented byc.
      1) IfC is a standardContainer, returns aC::iterator object.
      2) IfC is a standardContainer, returns aC::const_iterator object.
      3) Returns a pointer to the beginning ofarray.
      4) Returnsstd::begin(c), withc always treated as const-qualified.
      IfC is a standardContainer, returns aC::const_iterator object.

      range-begin-end.svg

      Contents

      [edit]Parameters

      c - a container or view with abegin member function
      array - an array of arbitrary type

      [edit]Return value

      1,2)c.begin()
      3)array
      4)c.begin()

      [edit]Exceptions

      4)
      noexcept specification:  
      noexcept(noexcept(std::begin(c)))

      [edit]Overloads

      Custom overloads ofbegin may be provided for classes and enumerations that do not expose a suitablebegin() member function, yet can be iterated. The following overloads are already provided by the standard library:

      overloadsstd::begin
      (function template)[edit]
      overloadsstd::begin
      (function template)[edit]
      range-based for loop support
      (function)[edit]
      range-based for loop support
      (function)[edit]

      Similar to the use ofswap (described inSwappable), typical use of thebegin function in generic context is an equivalent ofusing std::begin; begin(arg);, which allows both theADL-selected overloads for user-defined types and the standard library function templates to appear in the same overload set.

      template<typename Container,typename Function>void for_each(Container&& cont, Function f){using std::begin;auto it= begin(cont);usingstd::end;auto end_it= end(cont);while(it!= end_it){        f(*it);++it;}}

      Overloads ofbegin found byargument-dependent lookup can be used to customize the behavior ofstd::ranges::begin,std::ranges::cbegin, and other customization pointer objects depending onstd::ranges::begin.

      (since C++20)

      [edit]Notes

      The non-array overloads exactly reflect the behavior ofC::begin. Their effects may be surprising if the member function does not have a reasonable implementation.

      std::cbegin is introduced for unification of member and non-member range accesses. See alsoLWG issue 2128.

      IfC is a shallow-const view,std::cbegin may return a mutable iterator. Such behavior is unexpected for some users. See alsoP2276 andP2278.

      [edit]Example

      Run this code
      #include <iostream>#include <iterator>#include <vector> int main(){std::vector<int> v={3,1,4};auto vi= std::begin(v);std::cout<<std::showpos<<*vi<<'\n';  int a[]={-5,10,15};auto ai= std::begin(a);std::cout<<*ai<<'\n';}

      Output:

      +3-5

      [edit]See also

      (C++11)(C++14)
      returns an iterator to the end of a container or array
      (function template)[edit]
      returns an iterator to the beginning of a range
      (customization point object)[edit]
      returns an iterator to the beginning of a read-only range
      (customization point object)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/iterator/begin&oldid=177482"

      [8]ページ先頭

      ©2009-2025 Movatter.jp