Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- c
- Standard library header <vector>
- C++ Standard Library headers
- This header is part of the containers library.
- Includes
- <compare>
- (C++20)
- Three-way comparison operator support
- <initializer_list>
- (C++11)
- std::initializer_list class template
- Classes
- vector
- dynamic contiguous array
- (class template)
- vector<bool>
- space-efficient dynamic bitset
- (class template specialization)
- std::hash<std::vector<bool>>
- (C++11)
- hash support for std::vector<bool>
- (class template specialization)
- Forward declarations
- Defined in header <functional>
- hash
- (C++11)
- hash function object
- (class template)
- Functions
- operator==
- operator!=
- operator<
- operator<=
- operator>
- operator>=
- operator<=>
- (removed in C++20)
- (removed in C++20)
- (removed in C++20)
- (removed in C++20)
- (removed in C++20)
- (C++20)
- lexicographically compares the values in the vector
- (function template)
- std::swap(std::vector)
- specializes the std::swap algorithm
- (function template)
- erase(std::vector)
- erase_if(std::vector)
- (C++20)
- Erases all elements satisfying specific criteria
- (function template)
- Range access
- begin
- cbegin
- (C++11)
- (C++14)
- returns an iterator to the beginning of a container or array
- (function template)
- end
- cend
- (C++11)
- (C++14)
- returns an iterator to the end of a container or array
- (function template)
- rbegin
- crbegin
- (C++14)
- returns a reverse iterator to a container or array
- (function template)
- rend
- crend
- (C++14)
- returns a reverse end iterator for a container or array
- (function template)
- size
- ssize
- (C++17)
- (C++20)
- returns the size of a container or array
- (function template)
- empty
- (C++17)
- checks whether the container is empty
- (function template)
- data
- (C++17)
- obtains the pointer to the underlying array
- (function template)
- Synopsis
- #include <compare>
- #include <initializer_list>
- namespace std {
- // class template vector
- template<class T, class Allocator = allocator<T>> class vector;
- template<class T, class Allocator>
- constexpr bool operator==(const vector<T, Allocator>& x,
- const vector<T, Allocator>& y);
- template<class T, class Allocator>
- constexpr /*synth-three-way-result*/<T> operator<=>(const vector<T, Allocator>& x,
- const vector<T, Allocator>& y);
- template<class T, class Allocator>
- constexpr void swap(vector<T, Allocator>& x, vector<T, Allocator>& y)
- noexcept(noexcept(x.swap(y)));
- template<class T, class Allocator, class U>
- constexpr typename vector<T, Allocator>::size_type
- erase(vector<T, Allocator>& c, const U& value);
- template<class T, class Allocator, class Predicate>
- constexpr typename vector<T, Allocator>::size_type
- erase_if(vector<T, Allocator>& c, Predicate pred);
- // class vector<bool>
- template<class Allocator> class vector<bool, Allocator>;
- // hash support
- template<class T> struct hash;
- template<class Allocator> struct hash<vector<bool, Allocator>>;
- namespace pmr {
- template<class T>
- using vector = std::vector<T, polymorphic_allocator<T>>;
- }
- }
- Class template std::vector
- namespace std {
- template<class T, class Allocator = allocator<T>>
- class vector {
- public:
- // types
- using value_type = T;
- using allocator_type = Allocator;
- using pointer = typename allocator_traits<Allocator>::pointer;
- using const_pointer = typename allocator_traits<Allocator>::const_pointer;
- using reference = value_type&;
- using const_reference = const value_type&;
- using size_type = /* implementation-defined */;
- using difference_type = /* implementation-defined */;
- using iterator = /* implementation-defined */;
- using const_iterator = /* implementation-defined */;
- using reverse_iterator = std::reverse_iterator<iterator>;
- using const_reverse_iterator = std::reverse_iterator<const_iterator>;
- // construct/copy/destroy
- constexpr vector() noexcept(noexcept(Allocator())) : vector(Allocator()) { }
- constexpr explicit vector(const Allocator&) noexcept;
- constexpr explicit vector(size_type n, const Allocator& = Allocator());
- constexpr vector(size_type n, const T& value, const Allocator& = Allocator());
- template<class InputIt>
- constexpr vector(InputIt first, InputIt last, const Allocator& = Allocator());
- constexpr vector(const vector& x);
- constexpr vector(vector&&) noexcept;
- constexpr vector(const vector&, const Allocator&);
- constexpr vector(vector&&, const Allocator&);
- constexpr vector(initializer_list<T>, const Allocator& = Allocator());
- constexpr ~vector();
- constexpr vector& operator=(const vector& x);
- constexpr vector& operator=(vector&& x)
- noexcept(allocator_traits<Allocator>::propagate_on_container_move_assignment::value ||
- allocator_traits<Allocator>::is_always_equal::value);
- constexpr vector& operator=(initializer_list<T>);
- template<class InputIt>
- constexpr void assign(InputIt first, InputIt last);
- constexpr void assign(size_type n, const T& u);
- constexpr void assign(initializer_list<T>);
- constexpr allocator_type get_allocator() const noexcept;
- // iterators
- constexpr iterator begin() noexcept;
- constexpr const_iterator begin() const noexcept;
- constexpr iterator end() noexcept;
- constexpr const_iterator end() const noexcept;
- constexpr reverse_iterator rbegin() noexcept;
- constexpr const_reverse_iterator rbegin() const noexcept;
- constexpr reverse_iterator rend() noexcept;
- constexpr const_reverse_iterator rend() const noexcept;
- constexpr const_iterator cbegin() const noexcept;
- constexpr const_iterator cend() const noexcept;
- constexpr const_reverse_iterator crbegin() const noexcept;
- constexpr const_reverse_iterator crend() const noexcept;
- // capacity
- [[nodiscard]] constexpr bool empty() const noexcept;
- constexpr size_type size() const noexcept;
- constexpr size_type max_size() const noexcept;
- constexpr size_type capacity() const noexcept;
- constexpr void resize(size_type sz);
- constexpr void resize(size_type sz, const T& c);
- constexpr void reserve(size_type n);
- constexpr void shrink_to_fit();
- // element access
- constexpr reference operator[](size_type n);
- constexpr const_reference operator[](size_type n) const;
- constexpr const_reference at(size_type n) const;
- constexpr reference at(size_type n);
- constexpr reference front();
- constexpr const_reference front() const;
- constexpr reference back();
- constexpr const_reference back() const;
- // data access
- constexpr T* data() noexcept;
- constexpr const T* data() const noexcept;
- // modifiers
- template<class... Args> constexpr reference emplace_back(Args&&... args);
- constexpr void push_back(const T& x);
- constexpr void push_back(T&& x);
- constexpr void pop_back();
- template<class... Args>
- constexpr iterator emplace(const_iterator position, Args&&... args);
- constexpr iterator insert(const_iterator position, const T& x);
- constexpr iterator insert(const_iterator position, T&& x);
- constexpr iterator insert(const_iterator position, size_type n, const T& x);
- template<class InputIt>
- constexpr iterator insert(const_iterator position,
- InputIt first, InputIt last);
- constexpr iterator insert(const_iterator position, initializer_list<T> il);
- constexpr iterator erase(const_iterator position);
- constexpr iterator erase(const_iterator first, const_iterator last);
- constexpr void swap(vector&)
- noexcept(allocator_traits<Allocator>::propagate_on_container_swap::value ||
- allocator_traits<Allocator>::is_always_equal::value);
- constexpr void clear() noexcept;
- };
- template<class InputIt, class Allocator = allocator</*iter-value-type*/<InputIt>>>
- vector(InputIt, InputIt, Allocator = Allocator())
- -> vector</*iter-value-type*/<InputIt>, Allocator>;
- // swap
- template<class T, class Allocator>
- constexpr void swap(vector<T, Allocator>& x, vector<T, Allocator>& y)
- noexcept(noexcept(x.swap(y)));
- }
- Class template std::vector's specialization for bool
- namespace std {
- template<class Allocator>
- class vector<bool, Allocator> {
- public:
- // types
- using value_type = bool;
- using allocator_type = Allocator;
- using pointer = /* implementation-defined */;
- using const_pointer = /* implementation-defined */;
- using const_reference = bool;
- using size_type = /* implementation-defined */;
- using difference_type = /* implementation-defined */;
- using iterator = /* implementation-defined */;
- using const_iterator = /* implementation-defined */;
- using reverse_iterator = std::reverse_iterator<iterator>;
- using const_reverse_iterator = std::reverse_iterator<const_iterator>;
- // bit reference
- class reference {
- friend class vector;
- constexpr reference() noexcept;
- public:
- constexpr reference(const reference&) = default;
- constexpr ~reference();
- constexpr operator bool() const noexcept;
- constexpr reference& operator=(const bool x) noexcept;
- constexpr reference& operator=(const reference& x) noexcept;
- constexpr void flip() noexcept; // flips the bit
- };
- // construct/copy/destroy
- constexpr vector() : vector(Allocator()) { }
- constexpr explicit vector(const Allocator&);
- constexpr explicit vector(size_type n, const Allocator& = Allocator());
- constexpr vector(size_type n, const bool& value, const Allocator& = Allocator());
- template<class InputIt>
- constexpr vector(InputIt first, InputIt last, const Allocator& = Allocator());
- constexpr vector(const vector& x);
- constexpr vector(vector&& x);
- constexpr vector(const vector&, const Allocator&);
- constexpr vector(vector&&, const Allocator&);
- constexpr vector(initializer_list<bool>, const Allocator& = Allocator()));
- constexpr ~vector();
- constexpr vector& operator=(const vector& x);
- constexpr vector& operator=(vector&& x);
- constexpr vector& operator=(initializer_list<bool>);
- template<class InputIt>
- constexpr void assign(InputIt first, InputIt last);
- constexpr void assign(size_type n, const bool& t);
- constexpr void assign(initializer_list<bool>);
- constexpr allocator_type get_allocator() const noexcept;
- // iterators
- constexpr iterator begin() noexcept;
- constexpr const_iterator begin() const noexcept;
- constexpr iterator end() noexcept;
- constexpr const_iterator end() const noexcept;
- constexpr reverse_iterator rbegin() noexcept;
- constexpr const_reverse_iterator rbegin() const noexcept;
- constexpr reverse_iterator rend() noexcept;
- constexpr const_reverse_iterator rend() const noexcept;
- constexpr const_iterator cbegin() const noexcept;
- constexpr const_iterator cend() const noexcept;
- constexpr const_reverse_iterator crbegin() const noexcept;
- constexpr const_reverse_iterator crend() const noexcept;
- // capacity
- [[nodiscard]] constexpr bool empty() const noexcept;
- constexpr size_type size() const noexcept;
- constexpr size_type max_size() const noexcept;
- constexpr size_type capacity() const noexcept;
- constexpr void resize(size_type sz, bool c = false);
- constexpr void reserve(size_type n);
- constexpr void shrink_to_fit();
- // element access
- constexpr reference operator[](size_type n);
- constexpr const_reference operator[](size_type n) const;
- constexpr const_reference at(size_type n) const;
- constexpr reference at(size_type n);
- constexpr reference front();
- constexpr const_reference front() const;
- constexpr reference back();
- constexpr const_reference back() const;
- // modifiers
- template<class... Args> constexpr reference emplace_back(Args&&... args);
- constexpr void push_back(const bool& x);
- constexpr void pop_back();
- template<class... Args>
- constexpr iterator emplace(const_iterator position, Args&&... args);
- constexpr iterator insert(const_iterator position, const bool& x);
- constexpr iterator insert(const_iterator position, size_type n, const bool& x);
- template<class InputIt>
- constexpr iterator insert(const_iterator position,
- InputIt first, InputIt last);
- constexpr iterator insert(const_iterator position, initializer_list<bool> il);
- constexpr iterator erase(const_iterator position);
- constexpr iterator erase(const_iterator first, const_iterator last);
- constexpr void swap(vector&);
- constexpr static void swap(reference x, reference y) noexcept;
- constexpr void flip() noexcept; // flips all bits
- constexpr void clear() noexcept;
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement