Containor

序列式容器

所谓序列式容器:

  • 元素排列有顺序可寻(ordered)

  • 未必有序(sorted)

STL中序列式容器包括:

  • vector

vector

  • 和array相比:

    • array是静态的,大小固定(元素可变)

    • vector是动态的,长度大小可变

  • 迭代器

    • 提供的是 Random Access Iterators

  • 数据结构

    • 线性连续空间

    • 运用start、finish、end_of_storage三个迭代器,可轻松提供:

      • 首尾标识

      • 大小

      • 容量

      • 空容器判断

      • 注标([])运算子

      • ...

  • 构造函数

    // empty container constructor
    explicit vector (const allocator_type& alloc = allocator_type());
    
    // fill constructor
    // 指定size, 并调用指定类型默认构造函数构造对象并填充
    explicit vector (size_type n);
    explicit vector (size_type n, const value_type& val = value_type(), const allocator_type& alloc = allocator_type());
    
    // range constructor
    template <class InputIterator> vector (InputIterator first, InputIterator last, const allocator_type& alloc = allocator_type());
    
    // copy constructor
    vector (const vector& x);
    vector (const vector& x, const allocator_type& alloc);    
    
    // c++11
    // move constuctor
    vector (vector&& x);
    vector (vector&& x, const allocator_type& alloc);
    
    // initializer list
    // Constructs a container with a copy of each of the elements in il, in the same order
    vector (initializer_list<value_type> il,
           const allocator_type& alloc = allocator_type());
  • Iterators

    • begin

    • end

    • rbegin

      • Return reverse iterator to reverse beginning

      • 返回反向迭代器的开始

    • rend

      • Return reverse iterator to reverse end

    • cbegin

      • c++11

      • const pointer

    • cend

      • c++11

      • const pointer

    • crbegin

      • c++11

      • const pointer

    • crend

      • c++11

      • const pointer

  • Capacity

    • size

    • max_size

    • resize

    • capacity

    • empty

    • reserve

    • shrink_to_fit

      • c++11

  • Element access

    • operator[]

    • at

    • front

    • back

    • data

      • c++11

  • Modifiers

    • assign

    • push_back

    • pop_back

    • insert

    • erase

    • swap

    • clear

    • emplace

      • c++11

      • Construct and insert element

    • emplace_back

      • c++11

list

  • 数据结构

    • 环状双向链表

  • 迭代器

    • Bidirectional Iterators

    • 插入操作和接合操作不会造成原有list迭代器失效

  • Constructor

    // empty container constructor
    explicit list (const allocator_type& alloc = allocator_type());
    
    // fill constructor
    explicit list (size_type n, const value_type& val = value_type(),
                    const allocator_type& alloc = allocator_type());
    
    // range constructor
    template <class InputIterator>
      list (InputIterator first, InputIterator last,
             const allocator_type& alloc = allocator_type());
    
    // copy constructor
    // Constructs a container with a copy of each of the elements in x, in the same order.
    list (const list& x);
    
    // c++11
    // move constructor
    /* Constructs a container that acquires the elements of x.
    If alloc is specified and is different from x's allocator, the elements are moved. Otherwise, no elements are constructed (their ownership is directly transferred).
    x is left in an unspecified but valid state. */
    
    list (list&& x);
    list (list&& x, const allocator_type& alloc);
    
    // initializer list
    list (initializer_list<value_type> il,
           const allocator_type& alloc = allocator_type());
  • Iterators

    • begin

    • end

    • rbegin

    • rend

    • c++11

      • cbegin

      • cend

      • crbegin

      • crend

  • Capacity

    • empty

    • size

    • max_size

  • Element access

    • front

    • back

  • Modifiers

    • assign

    • emplace_front

      • c++11

    • push_front

    • pop_front

    • emplace_back

      • c++11

    • push_back

    • pop_back

    • emplace

      • c++11

    • insert

    • erase

    • swap

    • resize

    • clear

  • Element access

    • splice

    • remove

    • remove_if

    • unique

    • merge

    • sort

    • reverse

priority_queue

  • empty

  • size

  • top

  • push

  • emplace

    • c++11

  • pop

  • swap

    • c++11

关联式容器

最后更新于

这有帮助吗?