函数原型
- empty() //判断容器是否为空
- capacity() //容器的容量
- size() //返回容器元素的个数
- resize(int num) //重新指定容器的长度num,若容器变长,则以默认值(0)填充新位置
- 如果容器变短,则末尾超出容器长度的元素将被删除
- resize(int num,elem) //重新指定容器的长度num,若容器变长,则以elem填充新位置
若容器变短,则末尾超出容器长度的元素被删除
示例
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<numeric>
#include<set>
#include<map>
#include<vector>
#define ll long long
using namespace std;
void print(vector<int>&v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void test()
{
vector<int>v1;
for(int i=0;i<10;i++)
v1.push_back(i);
if(v1.empty())//为真代表容器为空
cout<<"v1为空"<<endl;
else
{
cout<<"v1不为空"<<endl;
cout<<"v1的容量为:"<<v1.capacity()<<endl;
cout<<"v1的大小为:"<<v1.size()<<endl;//容量永远大于等于size
//如果插入的元素满了,则capacity会进行动态扩展
}
//重新指定大小
v1.resize(15);//如果重新指定的比原来长了,默认用0填充新的位置
print(v1);
}
int main()
{
test();
return 0;
}
运行结果如下:
上述讲到的resize中可以利用重载版本,指定默认填充值
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<numeric>
#include<set>
#include<map>
#include<vector>
#define ll long long
using namespace std;
void print(vector<int>&v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void test()
{
vector<int>v1;
for(int i=0;i<10;i++)
v1.push_back(i);
if(v1.empty())//为真代表容器为空
cout<<"v1为空"<<endl;
else
{
cout<<"v1不为空"<<endl;
cout<<"v1的容量为:"<<v1.capacity()<<endl;
cout<<"v1的大小为:"<<v1.size()<<endl;//容量永远大于等于size
//如果插入的元素满了,则capacity会进行动态扩展
}
//重新指定大小
v1.resize(15,100);
print(v1);
}
int main()
{
test();
return 0;
}
运行结果如下:
继续引用上面的程序,现在我们来体会一下num小于size的情况
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<numeric>
#include<set>
#include<map>
#include<vector>
#define ll long long
using namespace std;
void print(vector<int>&v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void test()
{
vector<int>v1;
for(int i=0;i<10;i++)
v1.push_back(i);
if(v1.empty())//为真代表容器为空
cout<<"v1为空"<<endl;
else
{
cout<<"v1不为空"<<endl;
cout<<"v1的容量为:"<<v1.capacity()<<endl;
cout<<"v1的大小为:"<<v1.size()<<endl;//容量永远大于等于size
//如果插入的元素满了,则capacity会进行动态扩展
}
//重新指定大小
v1.resize(5);
print(v1);
}
int main()
{
test();
return 0;
}
输出结果如下: