GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::begin,std::cbegin(3) C++ Standard Libary std::begin,std::cbegin(3)

std::begin,std::cbegin - std::begin,std::cbegin


Defined in header <array>
Defined in header <deque>
Defined in header <forward_list>
Defined in header <iterator>
Defined in header <list>
Defined in header <map>
Defined in header <regex>
Defined in header <set>
Defined in header <span> (since
C++20)
Defined in header <string>
Defined in header <string_view> (since
C++17)
Defined in header <unordered_map>
Defined in header <unordered_set>
Defined in header <vector>
(since
template< class C > C++11)
auto begin( C& c ) -> decltype(c.begin()); (until
C++17)
template< class C > (since
constexpr auto begin( C& c ) -> C++17)
decltype(c.begin());
(since
template< class C > C++11)
auto begin( const C& c ) -> decltype(c.begin()); (until
C++17)
template< class C > (since
constexpr auto begin( const C& c ) -> (1) C++17)
decltype(c.begin());
(since
template< class T, std::size_t N > C++11)
T* begin( T (&array)[N] ); (1) (until
C++14)
template< class T, std::size_t N > (since
constexpr T* begin( T (&array)[N] ) noexcept; (2) C++14)
template< class C >


constexpr auto cbegin( const C& c ) noexcept(/* (3) (since
see below */) C++14)


-> decltype(std::begin(c));


Returns an iterator to the beginning of the given range.


1) Returns exactly c.begin(), which is typically an iterator to the beginning of the
sequence represented by c. If C is a standard Container, this returns C::iterator
when c is not const-qualified, and C::const_iterator otherwise.
2) Returns a pointer to the beginning of the array.
3) Returns exactly std::begin(c), with c always treated as const-qualified. If C is
a standard Container, this always returns C::const_iterator.


range-begin-end.svg


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


An iterator to the beginning the range.


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


Overloads


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


std::begin(std::initializer_list) overloads std::begin
(C++11) (function template)
std::begin(std::valarray) overloads std::begin
(C++11) (function template)
begin(std::filesystem::directory_iterator) range-based for loop support
end(std::filesystem::directory_iterator) (function)
(C++17)
begin(std::filesystem::recursive_directory_iterator) range-based for loop support
end(std::filesystem::recursive_directory_iterator) (function)


Similar to the use of swap (described in Swappable), typical use of the begin
function in generic context is an equivalent of using std::begin; begin(arg);, which
allows both the ADL-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);
using std::end;
auto end_it = end(cont);
while (it != end_it) {
f(*it);
++it;
}
}


Overloads of begin found by argument-dependent lookup can be used to
customize the behavior of std::ranges::begin, std::ranges::cbegin, and (since C++20)
other customization pointer objects depending on std::ranges::begin.


(1,3) exactly reflect the behavior of C::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 also LWG issue 2128.


If C is a shallow-const view, std::cbegin may return a mutable iterator. Such
behavior is unexpected for some users. See also P2276 and P2278.

// Run this code


#include <iostream>
#include <vector>
#include <iterator>


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';
}


+3
-5


end
cend returns an iterator to the end of a container or array
(C++11) (function template)
(C++14)
ranges::begin returns an iterator to the beginning of a range
(C++20) (customization point object)
ranges::cbegin returns an iterator to the beginning of a read-only range
(C++20) (customization point object)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.