C++之标准库vector

1478924-20190426184324501-318218403.jpg

  • 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] = {'\0', ' ', '\0'};
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 << "\n";

// words2 == words1
std::vector<std::string> words2(words1.begin(), words1.end());
std::cout << "words2: " << words2 << "\n";

// words3 == words1
std::vector<std::string> words3(words1);
std::cout << "words3: " << words3 << "\n";

// words4 is {"Mo", "Mo", "Mo", "Mo", "Mo"}
std::vector<std::string> words4(5, "Mo");
std::cout << "words4: " << words4 << "\n";
}

转载于:https://www.cnblogs.com/hugechuanqi/p/10776002.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值