# Algostuff. h <br/>/* print_elements () <br/> *-prints optional c-string optcstr followed by <br/> *-all elements of the collection Coll <br/> *-separated by spaces <br/> * /<br/> template <class T> <br/> inline void print_elements (const T & Coll, const char * optcstr = "") <br/>{< br/> typename T: const_iterator Pos; <br/> STD: cout <optcstr; <br/> for (Pos = Coll. begin (); pos! = Coll. end (); ++ POS) {<br/> STD: cout <* POS <''; <br/>}< br/> STD :: cout <STD: Endl; <br/>}< br/>/* insert_elements (collection, first, last) <br/> *-fill values from first to last into the collection <br/> *-note: no half-open range <br/> */<br/> template <class T> <br/> inline void insert_elements (T & Coll, int first, int last) <br/> {<br/> for (INT I = first; I <= last; ++ I) {<br/> Coll. insert (Coll. end (), I); <br/>}< br/>}
// Test. cpp
# Include <vector> <br/> # include <string> <br/> # include <iostream> <br/> # include "algostuff. H "<br/> using namespace STD; </P> <p> int print (char c) <br/>{< br/> cout <C <Endl; <br/>}< br/> int main () <br/>{< br/> vector <char> V1 (20 ); <br/> string STR = "Hello World"; <br/> copy (Str. begin (), str. end (), v1.begin (); </P> <p> for_each (v1.begin (), v1.end (), print ); </P> <p> char Buf [32] = {0}; <br/> strcpy (BUF, & V1 [0]); <br/> cout <"Len:" <strlen (BUF) <Endl; <br/> cout <Buf <Endl; <br/> vector <int> V2; <br/> insert_elements (V2, 1, 10); <br/> int ibuf [10] = {0 }; <br/> memcpy (ibuf, & V2 [0], sizeof (INT) * v2.size (); </P> <p> for (INT I = 0; I <v2.size (); I ++) <br/>{< br/> cout <ibuf [I] <Endl; <br/>}</P> <p> vector <int> V3 (ibuf, ibuf + 10); <br/> print_elements (V3 ); <br/> return 0; <br/>}