STL之resize()函式
阿新 • • 發佈:2019-01-26
size() 目前容器正擁有的元素個數
capacity() 容器能儲存的元素個數,即容量
reserve() 重新指定容器能儲存資料的個數
resize() 重新指定容器有效的元素個數
設元素原本的v.size()是n 當呼叫v.resize(m)後,有兩種情況:
1.若 m < n ,則只儲存容器前m個元素
2.若m > n ,則容器之前儲存的n個元素不變,不足m的部分補0
#include<bits/stdc++.h> using namespace std; int main() { int n; while (cin>>n) { vector<int>v;//建立一個空的容器 for (int i = 0;i < n;++i) { v.push_back(i); } int m; cin>>m; v.resize(m); cout<<"重新指定後元素個數:"<<v.size()<<endl; for (int i = 0;i < m;++i) { cout<<v[i]<<" "; } cout<<endl; } return 0; }
如果希望多出的部分不是補零,而是賦予指定的值,則可以呼叫v.resize(m,val)將不足的部分用val填充
#include<bits/stdc++.h> using namespace std; int main() { int n; while (cin>>n) { vector<int>v;//建立一個空的容器 for (int i = 0;i < n;++i) { v.push_back(i); } int m,val; cin>>m>>val; v.resize(m,val); cout<<"重新指定後元素個數:"<<v.size()<<endl; for (int i = 0;i < m;++i) { cout<<v[i]<<" "; } cout<<endl; } return 0; }