Iterator

来源:互联网 发布:证书 知乎 编辑:程序博客网 时间:2024/04/28 14:04
 
  
 #include 
<iterator>
 #include 
<numeric>
 #include 
<deque>
 #include 
<iostream>

 
 
using std::deque;
 
using std::cout;
 
using std::ostream_iterator;
 
using std::endl;


 
 
int main ()
 
{
   
//
   
// Initialize a vector using an array.
   
//
   int arr[4= 3,4,7,8 };
   
int total=0;
   deque
<int> d(arr+0, arr+4);
   
//
   
// stream the whole vector and a sum to cout
   
//
   copy(d.begin(),d.end()-1,ostream_iterator<int>(cout,"+"));
   cout 
<< *(d.end()-1<< " = " <<
          accumulate(d.begin(),d.end(),total) 
<< endl;
   
return 0;
 }

 
 
 
 #include 
<iterator>
 #include 
<numeric>
 #include 
<deque>
 #include 
<iostream>
 #include 
<fstream>
 
 
using std::deque;
 
using std::cout;
 
using std::ostream_iterator;
 
using std::endl;
 
using std::ofstream;

 
 
int main ()
 
{
   
//
   
// Initialize a vector using an array.
   
//
   int arr[4= 3,4,7,8 };
   
int total=0;
   deque
<int> d(arr+0, arr+4);
   
//
   
// stream the whole vector and a sum to cout
   
//
   
   ofstream outfile(
"test.txt");
   
   copy(d.begin(),d.end()
-1,ostream_iterator<int>(outfile,"+"));
   outfile 
<< *(d.end()-1<< " = " <<
          accumulate(d.begin(),d.end(),total) 
<< endl;
   
return 0;
 }

 


#include 
<iostream>
#include 
<algorithm>
#include 
<vector>
#include 
<string>
#include 
<iterator>
using namespace std;

int main () 
{
    
// first way
    cout << "Enter sequance of integers "
        
<< "(d - quit) : ";
    istream_iterator
<int> start_cin(cin);
    istream_iterator
<int> end_of_cin;
    vector
<int> v;
    copy(start_cin,end_of_cin,back_inserter(v));

    
for ( vector<int>::iterator It = v.begin();It != v.end(); It++ )
        cout 
<< *It << " - ";
    cout 
<< endl;
     
    
// second way
    vector<string> vS;
    cout 
<< "Enter three strings : ";
    
for ( int i = 0; i < 3; i++ )
        vS.push_back(
*istream_iterator<string>(cin));
     
    ostream_iterator
<string> sIt(cout,"");
    copy(vS.begin(),vS.end(),sIt);
      
    cout 
<< endl;
    
    
return 0;
}


// ostream_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include 
<vector>
#include 
<iostream>

int main( )
{
   
using namespace std;

   
// ostream_iterator for stream cout
   
// with new line delimiter
   ostream_iterator<int> intOut ( cout , " " );

   
// Standard iterator interface for writing
   
// elements to the output stream
   cout << "Elements written to output stream:" << endl;
   
*intOut = 10;
   intOut
++;      // No effect on iterator position
   *intOut = 20;
   
*intOut = 30;
   
   
return 0;
}



#include 
<iostream>
#include 
<vector>
#include 
<algorithm>
#include 
<iterator>

using namespace std;

int main()
{
    
// create ostream iterator for stream cout
    
// - values are separated by a newline character
    ostream_iterator<int> intWriter(cout," ");

    
// write elements with the usual iterator interface
    *intWriter = 42;
    intWriter
++;
    
*intWriter = 77;
    intWriter
++;
    
*intWriter = -5;

    
// create collection with elements from 1 to 9
    vector<int> coll;
    
for (int i=1; i<=9++i) {
        coll.push_back(i);
    }


    
// write all elements without any delimiter
    copy (coll.begin(), coll.end(),
          ostream_iterator
<int>(cout));
    cout 
<< endl;

    
// write all elements with " < " as delimiter
    copy (coll.begin(), coll.end(),
          ostream_iterator
<int>(cout," < "));
    cout 
<< endl;
    
    
return 0;
}



#include 
<iostream>
#include 
<list>
#include 
<fstream>
#include 
<algorithm>
#include 
<iterator>

using namespace std;

int main () 
{
    list
<int> i;
    ifstream f(
"test.txt");
    
    
// read data from file
    istream_iterator<int> file_iter(f);
    istream_iterator
<int> end_of_stream;
    
    f.close();
    
    copy (file_iter, end_of_stream, back_inserter(i));

    cout 
<< endl;

    ostream_iterator
<int> ositer(cout, " - ");
    copy (i.begin(), i.end(), ositer);
    cout 
<< endl;

    
return 0;
}



#include 
<iostream>
#include 
<vector>
#include 
<algorithm>
#include 
<fstream>
#include 
<iterator>

using namespace std;

int main () 
{
    
int ary[] = {2,5,7,2,8,9};
    ofstream ofile(
"test.txt");
    
    
// write to STDOUT
    copy(ary,ary+6,ostream_iterator<int>(cout," - "));
    
// write into file "TEST.DAT"
    copy(ary,ary+6,ostream_iterator<int>(ofile," "));
    ofile.close();
    cout 
<< endl;

    ifstream ifile(
"test.txt");
     
    istream_iterator
<int> start_file(ifile);
    istream_iterator
<int> end_file;
    
    
// read from file and write to STDOUT
    copy(start_file,end_file,
        ostream_iterator
<int>(cout," * "));
    ifile.close();
    cout 
<< endl;

    
return 0;
}



#include 
<iostream>
#include 
<set>
#include 
<algorithm>
#include 
<iterator>
using namespace std;

int main() 
{
    
int a[] = {1357910};
    
int b[] = {123456};
    
    
set<int> result;

    merge(a, a
+6, b, b+6
        inserter(result, result.begin()));
 
    copy(result.begin(), result.end(), 
        ostream_iterator
<int>(cout, " "));
    cout 
<< endl;

    
return 0;
}



#include 
<iostream>
#include 
<list>
#include 
<algorithm>
#include 
<iterator>

using namespace std;

int main() 
{
    list
<int> L;
    L.push_front(
3);
    
    insert_iterator
<list<int> > iL(L,L.begin());
    
*iL++ = 0;
    
*iL++ = 1;
    
*iL++ = 2;
    
    copy(L.begin(), L.end(), 
        ostream_iterator
<int>(cout, " "));
        
    
return 0;
}



 #include 
<iterator>
 #include 
<vector>
 #include 
<iostream>
 
using namespace std;
 
int main()
 
{
   
//Initialize a vector using an array
   int arr[4= {3,4,7,8};
   vector
<int> v(arr,arr+4);
   
//Output the original vector
   cout << "Start with a vector: " << endl << "     ";
   copy(v.begin(),v.end(),
        ostream_iterator
<int,char>(cout," "));
   
//Insert into the middle
   insert_iterator<vector<int> >  ins(v, v.begin()+2);
   
*ins = 5;
   
*ins = 6;
   
//Output the new vector
   cout << endl << endl;
   cout 
<< "Use an insert_iterator: " << endl << "     ";
   copy(v.begin(),v.end(),
        ostream_iterator
<int,char>(cout," "));
   
return 0;
 }

 
 
 #include 
<iterator>
#include 
<deque>
#include 
<iostream>

using namespace std;

 
int main ()
 
{
   
//
   
// Initialize a deque using an array.
   
//
   int arr[4= 3,4,7,8 };
   deque
<int> d(arr+0, arr+4);
   
//
   
// Output the original deque.
   
//
   cout << "Start with a deque: " << endl << "     ";
   copy(d.begin(), d.end(), ostream_iterator
<int>(cout," "));
   
//
   
// Insert into the middle.
   
//
   insert_iterator<deque<int> > ins(d, d.begin()+2);
   
*ins = 5*ins = 6;
   
//
   
// Output the new deque.
   
//
   cout << endl << endl;
   cout 
<< "Use an insert_iterator: " << endl << "     ";
   copy(d.begin(), d.end(), ostream_iterator
<int>(cout," "));
   
//
   
// A deque of four 1s.
   
//
   deque<int> d2(41);  //4 instants of 1
   
//
   
// Insert d2 at front of d.
   
//
   copy(d2.begin(), d2.end(), front_inserter(d));
   
//
   
// Output the new deque.
   
//
   cout << endl << endl;
   cout 
<< "Use a front_inserter: " << endl << "     ";
   copy(d.begin(), d.end(), ostream_iterator
<int>(cout," "));
   
//
   
// Insert d2 at back of d.
   
//
   copy(d2.begin(), d2.end(), back_inserter(d));
   
//
   
// Output the new deque.
   
//
   cout << endl << endl;
   cout 
<< "Use a back_inserter: " << endl << "     ";
   copy(d.begin(), d.end(), ostream_iterator
<int>(cout," "));
   cout 
<< endl;
   
return 0;
 }

 
 
 #include 
<iostream>
#include 
<deque>
#include 
<algorithm>
#include 
<iterator>

using namespace std;

int main() 
{
    deque
<int> d;
    front_inserter(d) 
= 100;
    front_inserter(d) 
= 200;

    copy(d.begin(),d.end(),
        ostream_iterator
<int>(cout," "));
    cout 
<< endl;
    
    
// use front inserter to insert all elements again
    copy (d.begin(), d.end(),   // source
        front_inserter(d));   // destination
          
    copy(d.begin(),d.end(),
        ostream_iterator
<int>(cout," "));
    cout 
<< endl;
    
    
return 0;
}