21xrx.com
2024-06-03 05:53:40 Monday
登录
文章检索 我的文章 写文章
C++中resize函数的用法和实例
2023-07-05 11:49:24 深夜i     --     --
C++ resize函数 用法 示例 功能

C++是一种较为常用的编程语言,其中的resize函数也是使用频率较高的一个函数。resize函数主要是用来重新设置容器的大小,以下内容将从使用方法和实例两个方面详细解释C++中resize函数的用法。

1.使用方法

C++中resize函数的定义如下:


void resize(size_type n);

void resize(size_type n, const value_type& val);

其中,第一个参数n表示新的容器大小,第二个参数val表示新元素的初值。当n小于当前容器大小时,会将多余的元素进行删除,如果n大于当前容器大小,则会加入新的元素来填充容器。

2.实例

接下来,我们将通过一些实例来看看resize函数的使用方法:

1)重新设置vector大小


#include<vector>

using namespace std;

int main(){

  vector<int> vec 3;

  vec.resize(3);

  for(auto i:vec)

    cout<<i<<" ";  //输出结果为 1 2 3

  

  return 0;

}

在上述代码中,我们使用resize函数重新设置了vector的大小,将其大小设置为3,并删除了多余元素。最后输出的结果为1、2、3。

2)设置新元素的初值


#include<vector>

using namespace std;

int main(){

  vector<int> vec 2;

  vec.resize(6,100);

  for(auto i:vec)

    cout<<i<<" ";  //输出结果为1 2 3 4 100 100

  

  return 0;

}

在上述代码中,我们使用resize函数将vector的大小设置为6,并新增了两个元素。同时,我们将新增元素的初值设置为100。最后输出的结果为1、2、3、4、100、100。

3)使用resize函数实现智能指针


#include<memory>

#include<iostream>

using namespace std;

int main(){

  shared_ptr<int> p(new int[10],std::default_delete<int[]>());

  shared_ptr<int> q = shared_ptr<int>(new int(),[&](int* p){ delete[] p;});

  q.reset(new int[5]);

  q.get()[0] = 1;

  q.get()[1] = 2;

  q.get()[2] = 3;

  q.get()[3] = 4;

  q.get()[4] = 5;

  q.resize(6);

  q.get()[5] = 6;

  for(int i=0;i<6;i++){

    cout<<q.get()[i]<<" "; //输出结果为1 2 3 4 5 6

  }

  return 0;

}

在上述代码中,我们使用resize函数模拟了智能指针的实现。我们将q指针先初始化为一个空指针,然后再通过q.reset(new int[5])来初始化q所指向的变量,再使用q.resize(6)函数来重新设置指针所指向的容器大小并新增元素,最后我们将1、2、3、4、5、6分别作为新增的元素依次赋值,最终输出结果为1、2、3、4、5、6。通过这个例子,我们不仅理解了resize函数的基本使用方法,同时也理解了智能指针的本质。

综上所述,C++中resize函数主要用于重新设置容器的大小,它可以帮助我们方便地调整容器的大小,并进行元素的插入和删除。当然,如果我们深入理解了resize函数的本质,也可以将它用于其他相关的应用场景中。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复