Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
Jul 28, 2000

Trimming a Vector

Suppose you create a vector and fill it with elements:

 
vector <int> MyVector;

MyVector.reserve(20);
for (int i=0 ; i<n ; ++i)
{
   MyVector.push_back(0);
}

Afterwards, you check the vector's size and capacity and notice that the capacity is 20 but the size (i.e., the number of existing elements) is smaller, say 15. How can you trim the capacity of the vector to match its actual size? There's no function to trim the capacity, but you can copy it to a temporary vector and swap, with something like:

 
vector < X > tmp(MyVector);
MyVector.swap(tmp);

The vector temp has the same number of elements that MyVector has. By sapping it with the original vector MyVector, the capacity of MyVector changes accordingly. Consequently, MyVector's capacity matches its size and there are no unused slots of memory.

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date