Computer >> Máy Tính >  >> Lập trình >> C ++

Trình lặp đầu ra trong C ++

Ở đây chúng ta sẽ xem các trình vòng lặp Đầu ra trong C ++ là gì. Các trình vòng lặp Đầu ra có một số đặc tính. Chúng như sau:

  • Các trình vòng lặp đầu ra được sử dụng để sửa đổi giá trị của các vùng chứa.
  • Chúng tôi không thể đọc dữ liệu từ vùng chứa bằng loại trình lặp này
  • Đây là trình lặp một chiều và chỉ ghi
  • Nó có thể tăng lên, nhưng không thể giảm đi.
  • Có hai phần con của các trình vòng lặp Đầu ra. Đây là Insert Iterator và ostreamiterator.

Trình lặp lại Chèn

Trình lặp chèn được sử dụng để chèn một số phần tử bên trong vùng chứa. Bộ điều hành gán trên loại trình lặp này sẽ chèn phần tử mới vào vị trí hiện tại. Cú pháp của trình chèn như sau:

template<class Container, class Iterator>
insert_iterator<container> inserter(Container &x,Iterator it);

Trình lặp này nhận hai tham số, x và nó. X là vùng chứa mà trình lặp sẽ hoạt động trên đó. Đối số thứ hai là đối tượng trình lặp, đối tượng này đang chỉ vị trí cần sửa đổi.

Mã mẫu

#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
using namespace std;
int main () {
   vector<int> vec1,vec2;
   for (int i=1; i<=10; i++) { //insert elements into vectors
      vec1.push_back(i);
      vec2.push_back(i+3);
   }
   vector<int>::iterator it = vec1.begin(); //iterator works on vector1
   advance (it,5); //advance it to 5 position
   copy (vec2.begin(),vec2.end(),inserter(vec1,it));
   cout<<"Elements of vec1 are :";
   for ( it = vec1.begin(); it!= vec1.end(); ++it )
      cout << ' ' << *it;
      cout << endl;
   return 0;
}

Đầu ra

Elements of vec1 are : 1 2 3 4 5 4 5 6 7 8 9 10 11 12 13 6 7 8 9 10

Trình lặp lại ostream

Trình lặp ostream được sử dụng để ghi vào luồng đầu ra như cout. Có thể tạo ostreamiterator bằng đối tượng basic_ostream. Khi toán tử gán được sử dụng với loại trình lặp này, nó sẽ chèn phần tử mới vào luồng đầu ra. Cú pháp như dưới đây.

template<class T, class charT=char, class traits=char_traits<charT>>
class ostream_iterator;

Các hàm thành viên của lớp trình lặp ostream giống như bên dưới.

ostream_iterator<T, charT, traits>& operator=(const T& value);
ostream_iterator<T, charT, traits>& operator*();
ostream_iterator<T, charT, traits>& operator++();
ostream_iterator<T, charT, traits>& operator++(int);

Các tham số là:T. Đây là kiểu phần tử sẽ được chèn, biểu đồ, đây là kiểu phần tử mà ostream có thể xử lý và các đặc điểm. Đây là những đặc điểm tính cách có thể được xử lý theo luồng.

Mã mẫu

#include <iostream>
#include<iterator>
#include<vector>
#include<algorithm>
using namespace std;
main() {
   vector<int> vector;
   for(int i=1;i<=10;i++)
      vector.push_back(i*i); //make square and insert
      ostream_iterator<int> out(cout,",");
      copy(vector.begin(),vector.end(),out);
}

Đầu ra

1,4,9,16,25,36,49,64,81,100,

Một ví dụ khác,

Mã mẫu

#include <iostream>
#include<iterator>
#include<vector>
#include<algorithm>
using namespace std;
main() {
   ostream_iterator<int> os_out(cout,",");
   *os_out = 10;
   os_out++; //point to next
   *os_out = 20;
   os_out++;
   *os_out = 30;
}

Đầu ra

10,20,30,