std::array::begin, std::array::cbegin
Материал из cppreference.com
iterator begin() noexcept; |
(до C++17) | |
constexpr iterator begin() noexcept; |
(начиная с C++17) | |
const_iterator begin() const noexcept; |
(до C++17) | |
constexpr const_iterator begin() const noexcept; |
(начиная с C++17) | |
const_iterator cbegin() const noexcept; |
(до C++17) | |
constexpr const_iterator cbegin() const noexcept; |
(начиная с C++17) | |
Возвращает итератор на первый элемент array
.
Если array
- пуст, возвращаемый итератор будет равен end()
Содержание |
[править] Параметры
(нет)
[править] Возвращаемое значение
Итератор на первый элемент.
[править] Сложность
Константная.
[править] Example
Запустить этот код
#include <array> #include <iostream> #include <algorithm> #include <iomanip> int main() { std::cout << std::boolalpha; std::array<int, 0> empty; std::cout << "1) " << (empty.begin() == empty.end()) << ' ' // true << (empty.cbegin() == empty.cend()) << '\n'; // true // *(empty.begin()) = 42; // => неопределенное поведение при запуске std::array<int, 4> numbers{5, 2, 3, 4}; std::cout << "2) " << (numbers.begin() == numbers.end()) << ' ' // false << (numbers.cbegin() == numbers.cend()) << '\n' // false << "3) " << *(numbers.begin()) << ' ' // 5 << *(numbers.cbegin()) << '\n'; // 5 *numbers.begin() = 1; std::cout << "4) " << *(numbers.begin()) << '\n'; // 1 // *(numbers.cbegin()) = 42; // ошибка компиляции: // ��ельзя присвоить переменной только для чтения // распечатаем все элементы std::cout << "5) "; std::for_each(numbers.cbegin(), numbers.cend(), [](int x) { std::cout << x << ' '; }); std::cout << '\n'; constexpr std::array constants{'A', 'B', 'C'}; static_assert(constants.begin() != constants.end()); // OK static_assert(constants.cbegin() != constants.cend()); // OK static_assert(*constants.begin() == 'A'); // OK static_assert(*constants.cbegin() == 'A'); // OK // *constants.begin() = 'Z'; // ошибка компиляции: // нельзя присвоить переменной только для чтения }
Вывод:
1) true true 2) false false 3) 5 5 4) 1 5) 1 2 3 4
[править] See also
(C++11) |
возвращает итератор на конец (public функция-элемент) |