Login | Register   
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
Language: C++
Expertise: Intermediate
Sep 8, 2000

The fill() Algorithm

The algorithm fill() is declared in <algorithm> as follows:

 
void fill(ForwardIterator f, ForwardIterator l, const T&);

The arguments f and l mark the sequence's beginning and end, respectively. fill() fills the elements in the sequence with the fixed value T. This algorithm is useful when you want to initialize or reinitialize a sequence with a fixed value. For example, to initialize a char array, use fill() as follows:

 
#include <algorithm>
char *p = new char[100];
std::fill(p, p+100, '\0'); // zero all characters

This is similar to calling memset(p, 0, 100). Note however, that fill() respects object semantics, unlike memset(). Therefore, you can use it to reinitialize a sequence of objects as well:

 
#include <algorithm>
#include <vector>
#include <string>

std::vector < std::string> vs(100); 
std::fill(vs.begin(), vs.end(), "greetings!"); 

The vector vs initially contains 100 empty strings. fill() assigns a new value: "greetings!" to all the strings in the vector.

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap