函式原型:
下面演示了利用swap函式互換兩個容器。
#include
#include
using
namespace std;
template
<
class
t>
void
printvector
(vector
&v) cout << endl;
}void
test1()
printvector<
int>
(v1)
; vector<
int>v2;
for(
int i =
10; i >
0; i--
) printvector<
int>
(v2)
; cout <<
"交換後:"
這個函式還有乙個小妙用,就是收縮空間。
我們知道,vector的容量總是大於等於元素個數,這有時候就會造成大量的空間都浪費了,比如下面這種情況:
//巧用swap
void
test2()
cout <<
"v的容量為:"
<< v.
capacity()
<< endl;
cout <<
"v的大小為:"
<< v.
size()
<< endl;
v.resize(3
);cout <<
"v的容量為:"
<< v.
capacity()
<< endl;
cout <<
"v的大小為:"
<< v.
size()
<< endl;
}
我們先存入100000個元素,後來又重置為3個元素,這樣會造成大量的空間浪費:
收縮不用的空間有兩種方法:
在test2裡加上:
vector<
int>
(v).
swap
(v);
將容器的空間收縮到元素個數那麼大,比較簡單,不再講解
cout <<
"v的容量為:"
<< v.
capacity()
<< endl;
cout <<
"v的大小為:"
<< v.
size()
<< endl;
這句話vector(v).swap(v);
是用拷貝建構函式建立了乙個和v一樣的vector,再用新建立的容器呼叫swap函式,這樣v就是指新建立的只有3個元素的容器了。而原來的大空間容器由於這一行**,變成了臨時變數,這一行**執行完就會立刻銷毀。 vector容器09之互換容器 swap
函式原型 include using namespace std include vector之互換容器 void print vector int v cout endl void test print v vector int v1 5,20 print v1 互換容器 實際應用 巧用swap可...
C vector容器 互換容器
vector容器互換 功能描述 實現兩個容器內元素進行互換 函式原型 swap vec 將vec與本身的元素互換 1.基本使用 如下 include using namespace std vector容器互換 include 1.基本使用 void printvector vector int v...
vector向量容器
vector容器是陣列的乙個泛化推廣,不僅可以像陣列那樣進行元素的隨機訪問,還可以在容器的尾端插入新元素,實現了random access container和back insertion sequence概念。vector具有自動的記憶體管理功能,對於元素的插入和刪除,能夠動態調整占用的記憶體空間...