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

网站建设项目资金申请360免费wifi怎么连接

网站建设项目资金申请,360免费wifi怎么连接,织梦移动网站后缀,免费杂志模板目录 前言 主要参考 vector::size vector::max_size vector::resize vector::capacity vector::empty vector::reserve vector::shrink_to_fit 共勉 前言 本文将讨论STL容器vector中与迭代器相关的函数,模板参数T为int类型。 主要参考 cpluscplus.com 侯…

目录

前言

主要参考

vector::size

vector::max_size

vector::resize

vector::capacity

vector::empty

vector::reserve

vector::shrink_to_fit

共勉


前言

        本文将讨论STL容器vector中与迭代器相关的函数,模板参数T为int类型。

主要参考

        cpluscplus.com

        侯捷《STL源码剖析》

        通义

vector::size

size_type size();

参数:

返回值: 返回vector中的元素数量, 返回一个无符号整型

功能: 

  • 返回vector中的元素数量。
  • 这是vector中实际持有的对象数量,这并不一定等于其存储容量。

案例

#include <iostream>
#include <vector>int main()
{std::cout << std::endl;std::vector<int> myints;std::cout << "0. size: " << myints.size() << '\n';// 向向量中添加 10 个元素,从 0 到 9for (int i = 0; i < 10; i++){myints.push_back(i);}std::cout << "1. size: " << myints.size() << '\n';// 在向量末尾插入 10 个值为 100 的元素myints.insert(myints.end(), 10, 100);std::cout << "2. size: " << myints.size() << '\n';// 移除向量的最后一个元素myints.pop_back();std::cout << "3. size: " << myints.size() << '\n';std::cout << std::endl;std::cout << std::endl;return 0;
}

运行结果

vector::max_size

size_type max_size();

参数:

返回值: vector可以包含的最大的元素数. (返回一个无符号整型)

功能: 

  • 返回向量可以容纳的最大元素数。
  • 这是由于已知系统或库实现限制而达到的容器的最大潜在大小,但容器绝不是保证能够达到该大小:在到达该大小之前仍有可能无法分配存储。

案例

#include <iostream>
#include <vector>int main()
{std::cout << std::endl;std::vector<int> myvector;// set some content in the vector:for (int i = 0; i < 100; i++)myvector.push_back(i);std::cout << "size: " << myvector.size() << "\n";std::cout << "max_size: " << myvector.max_size() << "\n";std::cout << std::endl;return 0;
}

运行结果

vector::resize

void resize (size_type n)

void resize (size_type n, const value_type& val)

参数:

  • n为新容器的大小, 以元素数量表示. 一个无符号整型
  • val如果n大于当前容器大小,对象的内容被复制到添加的元素中。如果没有指定,则使用默认构造函数代替。

返回值: 无返回值

功能: 

  • 将容器调整可以包含n个元素的大小。
  • 如果n小于当前容器大小,则内容减少到其前n个元素,删除超出的(并销毁它们)。
  • 如果n大于当前容器大小,则通过在末尾插入所需数量的元素来扩展内容,直到达到n的大小。
  • 如果val指定,则新元素作为val的副本初始化,否则,它们被值初始化。
  • 如果n也大于当前容器容量,则自动重新分配已分配存储空间。请注意,此函数通过从容器中插入或删除元素而更改实际的内容。

案例

#include <iostream>
#include <vector>int main()
{std::cout << '\n';std::vector<int> myvector;// set some initial content:for (int i = 1; i < 10; i++){myvector.push_back(i);}std::cout << "myvector中初始内容: ";for (int i = 0; i < myvector.size(); i++){std::cout << ' ' << myvector[i];}std::cout << '\n';std::cout << '\n';myvector.resize(5);std::cout << "将myvector大小设置为5时: ";for (int i = 0; i < myvector.size(); i++){std::cout << ' ' << myvector[i];}std::cout << '\n';std::cout << '\n';myvector.resize(8, 100);std::cout << "将myvector大小设置为8, 并将大于原本空间的位置设置为100时: ";for (int i = 0; i < myvector.size(); i++){std::cout << ' ' << myvector[i];}std::cout << '\n';std::cout << '\n';myvector.resize(12);std::cout << "将myvector大小扩大为12时: ";for (int i = 0; i < myvector.size(); i++){std::cout << ' ' << myvector[i];}std::cout << '\n';std::cout << '\n';return 0;
}

运行结果

vector::capacity

size_type capacity();

参数:

返回值: 

        向量中当前分配的存储容量大小,以它能容纳的元素个数为单位。 (返回一个无符号整型)

功能: 

  • 返回为向量分配的存储空间大小,以元素为单位表示。
  • 此容量不一定等于向量大小。它可以相等或更大,并且额外的空间允许在插入时无需重新分配即可容纳增长。
  • 请注意,该容量并不意味着对向量大小的限制。当此容量用尽并且需要更多时,
  • 容器会自动扩展(重新分配其存储空间)。向量的最大尺寸由成员max_size给出理论上的上限。

案例

#include <iostream>
#include <vector>int main ()
{std::vector<int> myvector;// 向myvector中插入5个元素:for (int i=0; i<5; i++) myvector.push_back(i);std::cout << "size: " << (int) myvector.size() << '\n';std::cout << "capacity: " << (int) myvector.capacity() << '\n';return 0;
}

运行结果

        这里可以看出当前myvector对象的大小是小于容器大小的, 因为容器在自动扩容的时候, 为了预防频繁多次扩容, 会一次性扩容较大的值, 不同的环境扩容大小可能会不一样. 所以capacity的值可能会有变化.

vector::empty

bool empty();

参数:
返回值: 如果容器大小为零,则为真,否则为假。(返回一个bool值)

功能: 测试向量是否为空
案例

#include <iostream>
#include <vector>int main()
{std::cout << '\n';std::vector<int> myvector;int sum(0);for (int i = 1; i <= 10; i++)myvector.push_back(i);// 当myvector容器为空的时候跳出循环while (!myvector.empty()){sum += myvector.back();myvector.pop_back();}std::cout << "total: " << sum << '\n';std::cout << '\n';return 0;
}

运行结果

        该示例将myvector的内容初始化为数字序列(从1到10)。然后逐个弹出元素,直到为空,并计算其和。

vector::reserve

void reserve (size_type n);

参数:

        n为向量的最小容量。 结果向量的容量可能等于或大于n。

        size_type是一个无符号整数类型。

返回值: 无返回值

功能: 

  • 请求更改容量 要求向量容量至少足以包含n个元素。
  • 如果n大于当前vector容量,该函数将容器重新分配其存储并增加其vector到n(或更大)。在所有其他情况下,函数调用不会导致重新分配,并且vector容量不受影响。 此功能对vector大小没有影响,也不能改变其元素。

案例

#include <iostream>
#include <vector>int main()
{std::cout << '\n';std::vector<int>::size_type sz;std::vector<int> v1;sz = v1.capacity();std::cout << "让v1扩容:\n";for (int i = 0; i < 100; ++i){v1.push_back(i);if (sz != v1.capacity()){sz = v1.capacity();std::cout << "capacity 改变: " << sz << '\n';}}std::vector<int> v2;sz = v2.capacity();v2.reserve(100); // this is the only difference with v1 abovestd::cout << "让v2扩容:\n";for (int i = 0; i < 100; ++i){v2.push_back(i);if (sz != v2.capacity()){sz = v2.capacity();std::cout << "capacity 改变: " << sz << '\n';}}std::cout << '\n';return 0;
}

运行结果

vector::shrink_to_fit

void shrink_to_fit();

参数: 

返回值:

功能:

        将容器容量缩小到合适大小,这可能会导致重新分配,但不会影响容器内容大小,并且不能更改其元素。

案例:

int main()
{std::cout << '\n';std::vector<int> myvector(100);std::cout << "容器初始容量大小: " << myvector.capacity() << '\n';std::cout << "容器初始大小: " << myvector.size() << '\n';std::cout << '\n';myvector.resize(10);std::cout << "重新设置后的容量大小: " << myvector.capacity() << '\n';std::cout << "重新设置后的容器大小: " << myvector.size() << '\n';std::cout << '\n';myvector.shrink_to_fit();std::cout << "调整之后的容器容量大小" << myvector.capacity() << '\n';std::cout << "调整后的容器大小: " << myvector.size() << '\n';std::cout << '\n';return 0;
}

运行结果

共勉

        希望本文能给你带来帮助,如果有什么问题或疑问欢迎评论区和私信讨论。谢谢点赞、收藏、关注。

感谢阅读

http://www.yayakq.cn/news/758406/

相关文章:

  • 环保局网站设计方案大型企业数字化平台登录入口
  • 做外汇可以参考的网站成都广告公司招聘
  • 网站不想续费安全教育平台登录入口 登录
  • 开一家网站建设公司有前景吗h5语言网站制作
  • 广西住房城乡建设厅官方网站关键词调词平台
  • 企业网站建设版本赣州稳稳科技有限公司
  • 网站建设的误区html5手机网站开发框架
  • 个人网站psd优化网站制作方法大全
  • 如何自建网站服务器php网站建设哪家好
  • 网站设计与制网站跳转到另外一个网站怎么做
  • 网站详情页用哪个软件做ps做购物小网站
  • 网站关键词优化报价创鑫云网络
  • 高中生做网站网页404 重定向 wordpress
  • 网站主题模板下载泰安房产网站建设
  • 网站广告怎样做wordpress获取当前页面链接
  • 深圳网站定制价格低滨州 网站开发
  • 网站开发价格预算做网站app需要懂些什么软件
  • 灵台教育局网站师资队伍建设软件外包
  • 云南 旅游 网站建设互联网营销师有必要考吗
  • php 网站开发收费怎么给领导做网站分析
  • 毕业设计 网站建设选题成都建网站成都建网站
  • 怎么做淘宝客手机网站达内教育
  • 网站默认首页文件顺序推荐6个免费国外自媒体平台
  • 怎样在百度搜到自己的网站做网站赚钱一般做什么
  • 做网站公司融资多少钱房产信息网 源码
  • 一级做爰片c视频网站wordpress 不同分类 不同主题
  • 学校网站源码免费开公司需要几个人注册
  • 一站式服务图片前台模板之家免费
  • 网站建设公司怎么做的济南网站建设公司熊掌号
  • 微信小程序网站制作网络整合营销案例