41typedef std::ostream_iterator<int, char,
43typedef std::ostream_iterator<std::string, char,
45typedef std::ostream_iterator<char, char,
64 std::cout <<
"Illustrate fill function\n";
70 std::fill (bufferp, (bufferp + 100),
'\0');
71 std::fill_n (bufferp, 10,
'x');
73 std::cout <<
buffer <<
'\n';
76 std::list<std::string, std::allocator<std::string> > aList;
78 std::fill_n (std::inserter (aList, aList.begin ()), 10,
"empty");
79 std::copy (aList.begin (), aList.end (),
85 std::fill (aList.begin (), aList.end (),
"full");
86 std::copy (aList.begin (), aList.end (),
92 std::vector<int, std::allocator<int> > iVec (10);
94 std::generate (iVec.begin (), iVec.end (),
iotaGen (1));
95 std::vector<int, std::allocator<int> >::iterator
96 seven = std::find (iVec.begin (), iVec.end (), 7);
97 std::fill (iVec.begin (), seven, 0);
98 std::copy (iVec.begin (), iVec.end (),
int_ostrm_iter (std::cout));
107 std::cout <<
"Illustrate copy function\n";
110 const char source[] =
"reprise";
111 const char surpass[] =
"surpass";
115 std::copy (&source [0],
116 source + std::char_traits<char>::length (source) + 1, bufferp);
119 *std::copy (bufferp + 2,
120 bufferp + std::char_traits<char>::length (
buffer),
123 std::size_t buflen = std::char_traits<char>::length (
buffer) + 1;
124 std::copy_backward (bufferp,
125 bufferp + buflen, bufferp + buflen + 3);
126 std::copy (&surpass [0], surpass + 3, bufferp);
129 std::copy (bufferp, bufferp + std::char_traits<char>::length (
buffer),
135 std::list<char, std::allocator<char> > char_list;
136 const char big[] =
"big ";
138 char *buffer2p = buffer2;
140 std::copy (bufferp, bufferp + std::char_traits<char>::length (
buffer),
141 std::inserter (char_list, char_list.end ()));
142 std::copy (&big [0], big + 4,
143 std::inserter (char_list, char_list.begin ()));
144 *std::copy (char_list.begin (),
145 char_list.end (), buffer2p) =
'\0';
147 std::cout << buffer2 <<
'\n';
154 static int lastLabel = 0;
155 std::ostringstream ost;
157 ost <<
"L_" << lastLabel++;
166 std::cout <<
"Illustrate generate algorithm\n";
169 std::list<std::string, std::allocator<std::string> > labelList;
171 std::generate_n (std::inserter (labelList, labelList.begin ()),
173 std::copy (labelList.begin (), labelList.end (),
179 std::vector<int, std::allocator<int> > iVec (10);
181 std::generate (iVec.begin (), iVec.end (),
iotaGen (2));
182 std::generate_n (iVec.begin (), 5,
iotaGen (7));
183 std::copy (iVec.begin (), iVec.end (),
int_ostrm_iter (std::cout,
" "));
192 std::cout <<
"Illustrate swap_ranges algorithm\n";
195 int data[] = {12, 27, 14, 64}, *datap =
data;
196 std::vector<int, std::allocator<int> > aVec (4);
198 std::generate (aVec.begin (), aVec.end (),
iotaGen (1));
206 std::vector<int, std::allocator<int> >::iterator
last =
211 std::iter_swap (aVec.begin (),
last);
212 std::copy (aVec.begin (), aVec.end (),
218 std::swap_ranges (aVec.begin (), aVec.end (), datap);
223 std::copy (aVec.begin (), aVec.end (),
232 std::cout <<
"STL generic algorithms -- initialization algorithms\n";
239 std::cout <<
"End of initialization tests\n";
std::ostream_iterator< int, char, std::char_traits< char > > int_ostrm_iter
std::ostream_iterator< std::string, char, std::char_traits< char > > str_ostrm_iter
std::ostream_iterator< char, char, std::char_traits< char > > char_ostrm_iter
std::string generateLabel()