C++ Vector Resize函数[通俗易懂]

C++VectorResize函数ChangesizeResizesthecontainersothatitcontainsnelements.Ifnissmallerthanthecurrentcontainersize,thecontentisreducedtoitsfirstnelements,removingthosebeyond(anddestroyingthem).Ifnisgreaterthanthecu

大家好,又见面了,我是你们的朋友全栈君。

C++ Vector Resize函数

Change size

Resizes the container so that it contains n elements.

If n is smaller than the current container size, the content is reduced to its first n elements, removing those beyond (and destroying them).

If n is greater than the current container size, the content is expanded by inserting at the end as many elements as needed to reach a size of n. If val is specified, the new elements are initialized as copies of val, otherwise, they are value-initialized.

If n is also greater than the current container capacity, an automatic reallocation of the allocated storage space takes place.

Notice that this function changes the actual content of the container by inserting or erasing elements from it.

void resize (size_type n, value_type val = value_type());

改变vector容器的大小。

改变容器的大小使他包含 n n n个元素。

  • 如果 n n n 小于当前容器大小,则内容减少到前 n n n个元素,移除后面的元素。
  • 如果 n n n 大于当前容器大小,则在后面插入一些元素至 n n n个大小,如果 v a l val val被定义则插入 v a l val val的复制,否则插入默认值 0 0 0
  • 如果 n n n大于当前容器的容量 ( c a p a c i t y ) (capacity) (capacity),则自动进行内容重新分配。

实例

// resizing vector
#include <iostream>
#include <vector>

int main ()
{ 
   
  std::vector<int> myvector;

  // set some initial content:
  for (int i=1;i<10;i++) myvector.push_back(i);

  myvector.resize(5);
  myvector.resize(8,100);
  myvector.resize(12);

  std::cout << "myvector contains:";
  for (int i=0;i<myvector.size();i++)
    std::cout << ' ' << myvector[i];
  std::cout << '\n';

  return 0;
}

结果

myvector contains: 1 2 3 4 5 100 100 100 0 0 0 0
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126842.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 五个最佳FTP客户端工具「建议收藏」

    五个最佳FTP客户端工具「建议收藏」概述无论你是做网站工作,还是运行一个家庭FTP服务器,或者你只是喜欢高速下载,一个稳定且功能齐全的FTP客户端工具都可以节省你大量时间和生命,现在有大量的免费或者收费的FTP客户端软件供大家选择,这里总结了五个流行的FTP客户端软件。FileZilla(所有平台)FileZillaFileZilla是一个免费开源的适合Windows、Mac和Linux的FTP客户端软件,因为其实免费跨平台和易用性,因此它是很多FTP用户的最初选择,FileZilla下载速度非常快,功能齐全,如果你是Wind

    2022年8月30日
    2
  • git reset后如何返回最新版本_reset按钮无法恢复

    git reset后如何返回最新版本_reset按钮无法恢复一、问题描述在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。二、背景知识git的版本管理,及HEAD的理解使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么…

    2022年8月22日
    29
  • nessus使用教程扫描_Nessus扫描IP无结果

    nessus使用教程扫描_Nessus扫描IP无结果转载:https://www.cnblogs.com/youcanch/articles/5671238.htmlNessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系统的漏洞分析扫描。Nessus也是渗透测试重要工具之一。所…

    2022年10月19日
    4
  • sendfile函数–零拷贝

    sendfile函数–零拷贝零拷贝:零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除通信数据在存储器之间不必要的中间拷贝过程,有效地提高通信效率,是设计高速接口通道、实现高速服务器和路由器的关键技术之一。sendfile#includessize_tsendfile(intout_fd,intin_fd,off_t*offset,size_tcount);参数特别注意

    2022年5月24日
    60
  • Java学习之Cookie与Session篇

    Java学习之Cookie与Session篇0x00前言到后面的学习中,其实大部分都是一些类的调用,只要清楚一些方法的使用。0x01Cookiecookie概念:客户端会话技术,将数据保

    2021年12月12日
    47
  • DELL服务器数据恢复成功案例

    DELL服务器数据恢复成功案例DELLEqualLogicPS6100采用虚拟ISCSISAN阵列,为远程或分支办公室、部门和中小企业存储部署带来企业级功能、智能化、自动化和可靠性。以简化的管理、快速的部署及合理的价格满足了分支办公室和中小企业的存储需求,同时提供全套企业级数据保护和管理功能、可靠的性能、可扩展性和容错功能,是中型企业级存储的起点产品,但某些物理故障或其他操作都可能会对卷或存储造成破坏,因此对系列存储的数…

    2022年6月30日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号