zoukankan      html  css  js  c++  java
  • C++之标准库vector


    • std::vector是一个封装动态数组的序列容器

    • std::pmr::vector是一个使用多态分配器的别名模板。

    1、成员函数

    • vector::vector:构造函数,用于构造向量。

    • vector::~vector:析构函数,对象撤销回收时调用。

    • vector::operator:分配值到容器中。

    • vector::assign:分配值到容器中。

    • vector::get allocator:返回相关的分配器。

    2、元素访问

    • vector::at:访问边界检查的指定元素。

    • vector::operator[]:访问具体元素。

    • vector::front:返回第一个元素。

    • vector::back:返回最后一个元素。

    • vector::data:直接访问底层数组。

    3、迭代器iterator

    • vector::begin/cbegin:将迭代器返回到开头。

    • vector::end/cend:将迭代器返回到末尾。

    • vector::rbegin/crbegin:将反向迭代器返回到开头。

    • vector::rend/crend:将反向迭代器返回到末尾。

    4、容量capacity

    • vector::empty:检查容器是否为空。

    -vector::size:返回元素的数量。

    -vector::max_size:返回最大的可能的元素数量。

    • vector::reserve:反向存储。

    • vector::capacity:返回当前分配存储中可以保留的元素数量。

    • vector::shrink_to_fit:通过释放未使用的内存,减少内存的使用。

    5、修改函数

    • vector::clean:清除内容。

    • vector::insert:插入元素。

    • vector::empalce:就地构造元素。

    • vector::erase:擦除元素。

    • vector::push_back:添加一个元素到末尾。

    • vector::emplace_back:在末尾就地构造一个元素。

    • vector::pop_back:移除最后一个元素。

    • vector::resize:改变元素存储的数量。

    • vector::swap:交换内容。

    举例:

    
    #include <vector>
    #include <string>
    #include <iostream>
    
    template<typename T>
    std::ostream& operator<<(std::ostream& s, const std::vector<T>& v) {
    s.put('[');
    char comma[3] = {'', ' ', ''};
    for(const auto& e : v) {
    s << comma << e;
    comma[0] = ',';
    }
    return s << ']';
    }
    
    int main() {
    // 初始化符号
    std::vector<std::string> words1 {"the", "frogurt", "is", "also", "cursed"};
    std::cout << "words1: " << words1 << "
    ";
    
    // words2 == words1
    std::vector<std::string> words2(words1.begin(), words1.end());
    std::cout << "words2: " << words2 << "
    ";
    
    // words3 == words1
    std::vector<std::string> words3(words1);
    std::cout << "words3: " << words3 << "
    ";
    
    // words4 is {"Mo", "Mo", "Mo", "Mo", "Mo"}
    std::vector<std::string> words4(5, "Mo");
    std::cout << "words4: " << words4 << "
    ";
    }
    
    
  • 相关阅读:
    思科交换机端口安全配置
    华为交换机端口安全配置
    多行文本出现省略号必备的条件(面试题)
    单行文本出现省略号必备的条件(面试题)
    让多个元素在一行显示的方法和技巧(面试题)
    overflow的多个作用
    雪碧图的使用和制作技巧
    列举background属性的8个属性值(面试题)
    background-origin设置背景图像的参考原点(位置)
    background-clip设置对象的背景图像向外裁剪的区域
  • 原文地址:https://www.cnblogs.com/hugechuanqi/p/10776002.html
Copyright © 2011-2022 走看看