C++ Tutorial/File Stream/ostream iterator — различия между версиями
Admin (обсуждение | вклад) м (1 версия: Импорт контента...) |
(нет различий)
|
Текущая версия на 13:31, 25 мая 2010
Содержание
Create ostream_iterator for writing int values to cout
<source lang="cpp">#include <iostream> using std::cout; using std::cin; using std::endl;
- include <iterator>
int main() {
cout << "Enter two integers: "; std::istream_iterator< int > inputInt( cin ); int number1 = *inputInt; ++inputInt; int number2 = *inputInt; std::ostream_iterator< int > outputInt( cout ); cout << "The sum is: "; *outputInt = number1 + number2; cout << endl; return 0;
}</source>
Enter two integers: 1 2 The sum is: 3
transform algorithm with ostream_iterator
<source lang="cpp">#include <algorithm>
- include <iostream>
- include <iterator>
using namespace std; int sum(int val1, int val2) { return val2 + val1; } int main() {
int array1[5] = {0, 1, 2, 3, 4}; int array2[5] = {6, 7, 8, 9, 10}; ostream_iterator<int> out(cout, " "); // Put sums of corresponding array1 and array2 elements into output stream: transform(&array1[0], &array1[5], &array2[0], out, sum); cout << endl; return 0;
}</source>
6 8 10 12 14
Use ostream_iterator
<source lang="cpp">#include <iostream>
- include <iterator>
using namespace std; int main() {
ostream_iterator<char> out_it(cout); *out_it = "X"; out_it++; *out_it = "Y"; out_it++; *out_it = " "; char str[] = "C++ Iterators are powerful.\n"; char *p = str; while(*p) *out_it++ = *p++; ostream_iterator<double> out_double_it(cout); *out_double_it = 187.23; out_double_it++; *out_double_it = -102.7; return 0;
}</source>
XY C++ Iterators are powerful. 187.23-102.7
Use ostream_iterator and copy to display collection content
<source lang="cpp">#include <iostream> using std::cout; using std::endl;
- include <list> // list class-template definition
- include <algorithm> // copy algorithm
- include <iterator> // ostream_iterator
int main() {
int array[ 4 ] = { 2, 6, 4, 8 }; std::list< int > values; // create list of ints std::list< int > otherValues; // create list of ints std::ostream_iterator< int > output( cout, " " ); // insert items in values values.push_front( 1 ); values.push_front( 3 ); values.push_back( 4 ); values.push_back( 2 ); cout << "values contains: "; std::copy( values.begin(), values.end(), output ); otherValues.insert( otherValues.begin(), array, array + 4 ); cout << "\n\notherValues contains: "; std::copy( otherValues.begin(), otherValues.end(), output );
values.merge( otherValues ); cout << "\n\nvalues contains: "; std::copy( values.begin(), values.end(), output ); cout << endl; return 0;
}</source>
values contains: 3 1 4 2 otherValues contains: 2 6 4 8 values contains: 2 3 1 4 2 6 4 8