std::vector...tor::cbegin(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸŽ€ NAME πŸŽ€

okay so this is the C++ Standard Libary manual page for std::vector...tor::cbegin(3), and the name is std::vector::begin,std::vector::cbegin β€” then a dash β€” std::vector::begin,std::vector::cbegin. yes bestie, it said it twice. iconic. πŸ’…

✨ Synopsis ✨

the signatures are literally these, no cap:

iterator begin();                       (1) (noexcept since C++11)
                                                      (constexpr since C++20)
const_iterator begin() const;           (2) (noexcept since C++11)
                                                      (constexpr since C++20)
const_iterator cbegin() const noexcept; (3) (since C++11)
                                                      (constexpr since C++20)

so like: begin() gives you an iterator, begin() const gives a const_iterator, and cbegin() const noexcept gives a const_iterator too. the numbers (1), (2), (3) are right there, and (3) is the since C++11 one. ✨

it returns an iterator to the first element of the vector.

if the vector is empty, the returned iterator will be equal to end().

there’s also the literal range-begin-end.svg sitting there like a little mascot πŸ¦‹

🫢 Parameters 🫢

(none) β€” not a single parameter, bestie. zero. absolutely nothing. πŸ’–

πŸ’– Return value πŸ’–

Iterator to the first element. that’s it. that’s the whole return value. 🫢

⚑ Complexity ⚑

Constant. ⚑

🧠 Notes 🧠

libc++ backports cbegin() to C++98 mode. ngl that’s a cute little backport moment. πŸ“

🌸 Example 🌸

run this code, bestie:

       // Run this code

        #include <algorithm>
        #include <iostream>
        #include <numeric>
        #include <string>
        #include <vector>

        int main()
        {
            std::vector<int> nums{1, 2, 4, 8, 16};
            std::vector<std::string> fruits{"orange", "apple", "raspberry"};
            std::vector<char> empty;

            // Print vector.
            std::for_each(nums.begin(), nums.end(), [](const int n) { std::cout
       << n << ' '; });
            std::cout << '\n';

            // Sums all integers in the vector nums (if any), printing only the
       result.
            std::cout << "Sum of nums: "
                      << std::accumulate(nums.begin(), nums.end(), 0) << '\n';

            // Prints the first fruit in the vector fruits, checking if there
       is any.
            if (!fruits.empty())
                std::cout << "First fruit: " << *fruits.begin() << '\n';

            if (empty.begin() == empty.end())
                std::cout << "vector 'empty' is indeed empty.\n";
        }

Output:

1 2 4 8 16
Sum of nums: 31
First fruit: orange
vector 'empty' is indeed empty.

πŸ‘€ See also πŸ‘€

the linked squad from the page, in order:

  • end β€” returns an iterator to the end
  • cend β€” (public member function) (C++11)
  • begin
  • cbegin β€” returns an iterator to the beginning of a container or array
  • tags right after cbegin: (C++11), (function template), (C++14)

mwah πŸ’– β€” source/version/date sign-off: http://cppreference.com, 2024.06.10, page std::vector...tor::cbegin(3).

πŸ“¦ where this page comes from