当前位置: 首页 > wzjs >正文

wordpress b站播放器宁波关键词优化时间

wordpress b站播放器,宁波关键词优化时间,专做化妆品的网站,怎么查看一个网站是不是伪静态文章目录 std::vector使用指南1 不同版本提供的能力基础:C98 / C03 提供的成员函数C11 新增的成员函数C14:基本无变化(主要是标准库泛化,非 vector 成员变化)C17 引入的新特性(间接影响)C20 新增…

文章目录

  • std::vector使用指南
    • 1 不同版本提供的能力
      • 基础:C++98 / C++03 提供的成员函数
      • C++11 新增的成员函数
      • C++14:基本无变化(主要是标准库泛化,非 vector 成员变化)
      • C++17 引入的新特性(间接影响)
      • C++20 新增的成员函数
      • C++23(支持现代特性)
      • 总结:不同版本对 `vector` 的增强
    • 2 清单
      • 构造与析构函数
      • 容量相关函数
      • 元素访问
      • 修改操作
      • 迭代器接口
      • 分配器支持
      • 特别说明:`std::vector<bool>` 特化
      • 附加:非成员相关函数(在 `<algorithm>` 和 `<utility>` 中)

std::vector使用指南

1 不同版本提供的能力

基础:C++98 / C++03 提供的成员函数

这些是最初的 std::vector 提供的核心接口:

函数分类成员函数
构造 & 析构vector() / vector(size_t) / vector(size_t, const T&) / vector(begin, end)
容量操作size() / capacity() / max_size() / resize() / empty() / reserve()
元素访问operator[] / at() / front() / back()
数据访问data()(非 const 仅 C++03)
修改元素push_back() / pop_back() / insert() / erase() / clear() / assign() / swap()
迭代器begin() / end() / rbegin() / rend()

C++11 新增的成员函数

C++11 引入了移动语义、智能构造、initializer_list 等现代特性。

类别新增成员函数
构造函数vector(std::initializer_list<T>)
修改操作emplace_back() / emplace()
迭代器cbegin() / cend() / crbegin() / crend()
数据访问data() 变成同时支持 constnon-const
移动语义移动构造函数和移动赋值运算符
内存管理使用 allocator_traits 更灵活地控制内存行为(底层)

C++14:基本无变化(主要是标准库泛化,非 vector 成员变化)

  • std::vector 本身成员函数无明显增加
  • 更侧重算法泛化(如 std::make_reverse_iterator

C++17 引入的新特性(间接影响)

虽然 vector 成员函数未变,但你可以使用:

  • data() 安全性增强(支持空容器时返回有效指针)
  • std::size(v), std::empty(v)(非成员函数支持)

C++20 新增的成员函数

类别成员函数
修改操作resize_and_overwrite(size, lambda)
内存操作shrink_to_fit() 行为稳定
常量支持consteval / constexpr 支持几乎所有成员函数
迭代器contains() 未加入 vector,是 set/map 的(常见误解)

resize_and_overwrite 是性能优化函数,用于原地构造内容。


C++23(支持现代特性)

类别成员函数
范围操作contains()set, map 特有)
iterator 扩展begin() / end() 全部支持 constexpr
std::vector<bool>提升 bit-reference 安全性(编译器支持有差异)
operator[]更明确地支持 constexpr(提高编译期能力)

总结:不同版本对 vector 的增强

C++版本变化重点
C++98/03初始接口、复制语义
C++11移动语义、emplace、initializer_list
C++14基本无变化
C++17增强泛型接口、算法
C++20resize_and_overwrite、全面 constexpr
C++23更现代、安全的范围与编译期支持

2 清单

std::vector<T> 成员函数完整清单(含函数签名、功能说明、适用的 C++ 标准版本)

  • 构造函数
  • 容量管理
  • 元素访问
  • 修改操作
  • 迭代器
  • 分配器支持

构造与析构函数

函数签名说明C++版本
vector()默认构造,空向量C++98
explicit vector(size_type n)构造 n 个默认值元素C++98
vector(size_type n, const T& value)构造 n 个指定值C++98
template <class InputIt> vector(InputIt first, InputIt last)构造区间元素C++98
vector(const vector& other)拷贝构造C++98
vector(vector&& other)移动构造C++11
vector(std::initializer_list<T> ilist)初始化列表构造C++11
~vector()析构函数C++98
vector& operator=(const vector& other)拷贝赋值C++98
vector& operator=(vector&& other)移动赋值C++11
vector& operator=(std::initializer_list<T> ilist)初始化列表赋值C++11

容量相关函数

函数签名说明C++版本
size_type size() const noexcept当前元素个数C++98
size_type capacity() const noexcept当前分配容量C++98
size_type max_size() const noexcept最大可存储元素数C++98
bool empty() const noexcept是否为空C++98
void resize(size_type n)改变元素个数(默认值)C++98
void resize(size_type n, const T& value)改变元素个数(指定值)C++98
void reserve(size_type new_cap)扩充容量C++98
void shrink_to_fit()释放冗余容量C++11(行为标准化于 C++20)

元素访问

函数签名说明C++版本
T& operator[](size_type pos)非边界检查访问C++98
const T& operator[](size_type pos) const同上C++98
T& at(size_type pos)带边界检查访问C++98
const T& at(size_type pos) const同上C++98
T& front()返回首元素C++98
const T& front() const同上C++98
T& back()返回尾元素C++98
const T& back() const同上C++98
T* data() noexcept原始指针访问C++11
const T* data() const noexcept同上C++11(C++03为非标准扩展)

修改操作

函数签名说明C++版本
void assign(size_type n, const T& val)用 n 个元素赋值C++98
template <class InputIt> void assign(InputIt first, InputIt last)区间赋值C++98
void assign(std::initializer_list<T> ilist)初始化列表赋值C++11
void push_back(const T& value)末尾添加元素C++98
void push_back(T&& value)移动添加C++11
template <class... Args> void emplace_back(Args&&... args)原地构造末尾元素C++11
void pop_back()删除末尾元素C++98
iterator insert(iterator pos, const T& value)插入元素C++98
iterator insert(iterator pos, T&& value)移动插入C++11
iterator insert(iterator pos, size_type count, const T& value)插入 count 个值C++98
template <class InputIt> iterator insert(iterator pos, InputIt first, InputIt last)插入区间C++98
iterator insert(iterator pos, std::initializer_list<T> ilist)插入初始化列表C++11
template <class... Args> iterator emplace(iterator pos, Args&&... args)原地插入C++11
iterator erase(iterator pos)删除一个元素C++98
iterator erase(iterator first, iterator last)删除区间C++98
void clear() noexcept清空C++98
void swap(vector& other)交换内容C++98
template <class Operation> void resize_and_overwrite(size_type n, Operation op)自定义重构内容C++20

迭代器接口

函数签名说明C++版本
iterator begin() / end()正向迭代器C++98
const_iterator begin() const / end() constconst 版本C++98
reverse_iterator rbegin() / rend()反向迭代器C++98
const_reverse_iterator rbegin() const / rend() constconst 版本C++98
const_iterator cbegin() / cend()C++11
const_reverse_iterator crbegin() / crend()C++11

分配器支持

函数签名说明C++版本
allocator_type get_allocator() const noexcept返回使用的 allocatorC++98

特别说明:std::vector<bool> 特化

std::vector<bool> 是位优化特化版本,部分接口行为不同(如返回 proxy 而非 bool&),C++20 和 C++23 对其进行了更安全的增强。


附加:非成员相关函数(在 <algorithm><utility> 中)

函数签名说明C++版本
std::swap(vector&, vector&)交换内容C++98
std::begin(v) / std::end(v)泛型访问迭代器C++11
std::size(v) / std::empty(v)泛型访问C++17
http://www.dtcms.com/wzjs/61598.html

相关文章:

  • 网站建设分工表网络服务提供者知道或者应当知道
  • 单页销售网站制作制作快速建站工具
  • 襄阳做网站的公司提升seo排名的方法
  • 江苏建设工程信息网网址网站关键字优化
  • 域名反查网站2345王牌浏览器
  • 建筑公司起名字寓意好的字班级优化大师官网下载
  • ueditor如何上传wordpressseo排名优化服务
  • 做系统网站网站如何建立
  • 搜狗网站收录入口优化搜索关键词
  • 微信公众平台注册官网新乡seo公司
  • 成品网站开发云南网站建设百度
  • 假发的出口做b2c网站定制网站和模板建站
  • 主流的网站建设的软件有哪些seo全站优化全案例
  • 科技前沿北京seo优化费用
  • 广州花都网站建设网络优化工程师招聘信息
  • 嘉兴高端网站建设靖江seo要多少钱
  • 做网站的困难培训报名
  • 哪里查询网站备案高端网站建设公司哪家好
  • 福州企业网站维护价格低链接网
  • 乌鲁木齐城乡建设管理局网站建站服务
  • 游戏网站排行榜前十名百度查重软件
  • 2023年税收优惠政策珠海seo排名收费
  • 网站被挂黑链如何自己开发网站
  • 网站的ppt方案怎么做网络网站
  • 昆明做网站的公司有哪些谷歌google地图
  • 电脑做试卷的网站网站运营公司
  • 广告视频网站数据分析网页
  • 网站开发的最初阶段包括google下载安卓版
  • 怎么做cms网站国外推广网站
  • 学习做网站营销广告文案