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

襄阳网站建设-飞鱼网络手机制作网页app

襄阳网站建设-飞鱼网络,手机制作网页app,seo查询工具有哪些,vps设置网站访问用户权限std::vector 是 C 标准库中的一个动态数组容器,提供了丰富的接口来管理容量、插入、删除和访问元素。以下是对你提到的接口的详细说明和使用示例: 1. 容量相关接口 capacity(): 返回当前 vector 分配的存储空间大小(以元素数量计&#xff09…

std::vector 是 C++ 标准库中的一个动态数组容器,提供了丰富的接口来管理容量、插入、删除和访问元素。以下是对你提到的接口的详细说明和使用示例:

1. 容量相关接口

  • capacity(): 返回当前 vector 分配的存储空间大小(以元素数量计),即在不重新分配内存的情况下可以容纳的元素数量。

    std::vector<int> vec;
    vec.reserve(100);  // 预留 100 个元素的空间
    std::cout << "Capacity: " << vec.capacity() << std::endl;  // 输出: Capacity: 100
    
  • reserve(size_type n): 预留至少能容纳 n 个元素的内存空间。如果 n 大于当前容量,vector 会重新分配内存以增加容量。

    std::vector<int> vec;
    vec.reserve(100);  // 预留 100 个元素的空间
    
  • shrink_to_fit(): 请求移除未使用的容量,使 capacity() 等于 size()。这个请求是非强制的,具体实现可能会忽略。

    std::vector<int> vec(100);
    vec.resize(10);  // 缩小 size 到 10
    vec.shrink_to_fit();  // 请求缩小容量
    std::cout << "Capacity after shrink: " << vec.capacity() << std::endl;  // 输出: Capacity after shrink: 10
    

2. 附加元素接口

  • push_back(const T& value): 在 vector 的末尾添加一个元素。

    std::vector<int> vec;
    vec.push_back(10);  // vec: [10]
    vec.push_back(20);  // vec: [10, 20]
    
  • emplace_back(Args&&... args): 在 vector 的末尾就地构造一个元素,避免了不必要的拷贝或移动操作。

    std::vector<std::string> vec;
    vec.emplace_back("Hello");  // vec: ["Hello"]
    vec.emplace_back("World");  // vec: ["Hello", "World"]
    

3. 元素插入接口

  • insert(iterator pos, const T& value): 在指定位置 pos 前插入一个元素。

    std::vector<int> vec = {1, 3};
    vec.insert(vec.begin() + 1, 2);  // vec: [1, 2, 3]
    
  • emplace(iterator pos, Args&&... args): 在指定位置 pos 前就地构造一个元素。

    std::vector<std::string> vec = {"Hello", "World"};
    vec.emplace(vec.begin() + 1, "C++");  // vec: ["Hello", "C++", "World"]
    

4. 元素删除接口

  • pop_back(): 删除 vector 的最后一个元素。

    std::vector<int> vec = {1, 2, 3};
    vec.pop_back();  // vec: [1, 2]
    
  • erase(iterator pos): 删除指定位置 pos 的元素。

    std::vector<int> vec = {1, 2, 3};
    vec.erase(vec.begin() + 1);  // vec: [1, 3]
    
  • erase(iterator first, iterator last): 删除范围 [first, last) 内的元素。

    std::vector<int> vec = {1, 2, 3, 4};
    vec.erase(vec.begin() + 1, vec.begin() + 3);  // vec: [1, 4]
    
  • clear(): 清空 vector 中的所有元素。

    std::vector<int> vec = {1, 2, 3};
    vec.clear();  // vec: []
    

5. 元素访问接口

  • operator[]: 通过下标访问元素,不进行边界检查。

    std::vector<int> vec = {1, 2, 3};
    int x = vec[1];  // x = 2
    
  • at(size_type pos): 通过下标访问元素,进行边界检查,如果 pos 超出范围则抛出 std::out_of_range 异常。

    std::vector<int> vec = {1, 2, 3};
    int x = vec.at(1);  // x = 2
    
  • front(): 返回 vector 的第一个元素。

    std::vector<int> vec = {1, 2, 3};
    int x = vec.front();  // x = 1
    
  • back(): 返回 vector 的最后一个元素。

    std::vector<int> vec = {1, 2, 3};
    int x = vec.back();  // x = 3
    
  • data(): 返回指向 vector 内部数组的指针。

    std::vector<int> vec = {1, 2, 3};
    int* p = vec.data();  // p 指向 vec 的内部数组
    

6. 容量相关

  • empty(): 判断 vector 是否为空。

    std::vector<int> vec;
    if (vec.empty()) {std::cout << "Vector is empty" << std::endl;
    }
    
  • size(): 返回 vector 中当前元素的数量。

    std::vector<int> vec = {1, 2, 3};
    std::cout << "Size: " << vec.size() << std::endl;  // 输出: Size: 3
    
  • max_size(): 返回 vector 可以容纳的最大元素数量。

    std::vector<int> vec;
    std::cout << "Max size: " << vec.max_size() << std::endl;
    

总结

std::vector 提供了丰富的接口来管理动态数组的容量、插入、删除和访问元素。合理使用这些接口可以有效地管理内存并提高代码的性能。


文章转载自:

http://u4FE1TY0.yjxfj.cn
http://JFW8YdKB.yjxfj.cn
http://mGjZoU1m.yjxfj.cn
http://1Oa8RUBQ.yjxfj.cn
http://TyOtzZ1y.yjxfj.cn
http://HPER1CCS.yjxfj.cn
http://vLXJc5hb.yjxfj.cn
http://AQ6bXCuR.yjxfj.cn
http://yJhfG3GL.yjxfj.cn
http://tZjP0eTt.yjxfj.cn
http://TUsULEKH.yjxfj.cn
http://HSwVsDkU.yjxfj.cn
http://4z57wdKo.yjxfj.cn
http://GFZ9OWWQ.yjxfj.cn
http://0CzRjBfn.yjxfj.cn
http://MJ3bK5bi.yjxfj.cn
http://1fOstTVE.yjxfj.cn
http://yLL0PIZ5.yjxfj.cn
http://eAYbQ0j2.yjxfj.cn
http://W9jylxzt.yjxfj.cn
http://HhmPr078.yjxfj.cn
http://9bgyhzsq.yjxfj.cn
http://iZRfsBpg.yjxfj.cn
http://a1bE4c4S.yjxfj.cn
http://6q22sWh8.yjxfj.cn
http://NQg0pSbF.yjxfj.cn
http://UqWDgjWD.yjxfj.cn
http://9SzOdZzn.yjxfj.cn
http://9vm6E2Pn.yjxfj.cn
http://USxoxxh4.yjxfj.cn
http://www.dtcms.com/wzjs/779680.html

相关文章:

  • phpmysql网站设计买卖交易网
  • 哪里有免费的网站推广全世界足球排名国家
  • 做网站是要收费的吗网络热词2023
  • 网站建设公司做ppt吗西安网站排名优化
  • 导航网站设计网站权限控制
  • 能不能同行网站做站长统计专业企业网站建设报价
  • 广西响应式网站制作进入百度一下官网
  • 专业设计网站推荐常州做网站公司有哪些
  • 接做网站需要问什么条件做58同城的网站要多少钱
  • 知己知彼网站做网站语言排名2018
  • 周口公司做网站做网站的励志故事
  • 深圳最好的营销网站建设公司排名网站里的动画是什么软件做的
  • 合肥网站建站报广告代理唐山网站建设维护
  • 建筑工程素材资源网站电子商务平台内的自然人经营者
  • dedecms做的系统网站主页是哪一个文件门户网站架构
  • 南昌外包建站Wordpress用七牛云存储
  • 网站广告位外链建设对网站的影响
  • 宁波找网站建设企业微信开发者工具教程实例
  • 网站到期请续费泉州服装电商网站建设
  • 深圳专业软件网站建设seo的内容怎么优化
  • 建设网站找谁大气网站首页
  • 国内医院网站开发现状wordpress采集公众号图片
  • 工艺品网站模板下载-古色古香科技小论文怎么写
  • qq空间钓鱼网站制作网站在建设是什么意思
  • 建设168网站wordpress+导入+媒体
  • 廉江网站建设公司南宁外贸网站建设
  • 西安做一个企业网站要多少钱济南手机网站建设公司排名
  • 专业开发网站企业昆明短视频运营公司
  • 锦州市网站建设西宁最好网站建设公司哪家好
  • 重庆酉阳网站设计公司东莞横沥三江工业区