Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Iterators สองทิศทางใน C ++


ที่นี่เราจะเห็นแนวคิดของตัววนซ้ำสองทิศทางใน C++

  • ตัววนซ้ำแบบสองทิศทางสนับสนุนคุณลักษณะทั้งหมดของตัววนซ้ำการส่งต่อ และยังรวมถึงตัวดำเนินการลดคำนำหน้าและหลังการแก้ไข
  • ตัววนซ้ำประเภทนี้สามารถเข้าถึงองค์ประกอบได้ทั้งสองทิศทาง เช่น ไปจนสุดทางและไปยังจุดเริ่มต้น
  • ตัววนซ้ำการเข้าถึงโดยสุ่มยังเป็นประเภทของตัววนซ้ำแบบสองทิศทางอีกด้วย
  • ตัววนซ้ำแบบสองทิศทางมีคุณสมบัติของตัววนซ้ำแบบไปข้างหน้า แต่ความแตกต่างเพียงอย่างเดียวคือตัววนซ้ำนี้สามารถลดค่าได้

ตัววนซ้ำแบบสองทิศทางมีคุณสมบัติบางอย่าง เหล่านี้เป็นเหมือนด้านล่าง

คุณสมบัติ นิพจน์
ตัววนซ้ำแบบสองทิศทางเป็นค่าเริ่มต้น สร้างได้ คัดลอกกำหนดได้ และยังสามารถทำลายได้ A p
ถาม(p)
q =p
เราสามารถเปรียบเทียบได้โดยใช้ตัวดำเนินการความเท่าเทียมกันและความไม่เท่าเทียมกัน p ==q
p !=q
สามารถยกเลิกการอ้างอิงได้ เราสามารถใช้ตัวดำเนินการ dereference (*) เพื่อรับค่าได้ *p
ตัววนซ้ำที่ไม่แน่นอนสามารถยกเลิกการอ้างอิงเป็น lvalue *p =t
เราสามารถเพิ่มหรือลดโดยใช้ตัวดำเนินการเพิ่ม (++) และตัวดำเนินการลด (--) p++
q--

โค้ดตัวอย่าง

#include <iostream>
#include<iterator>
#include<vector>
using namespace std;
int main() {
   vector<int> vec{10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
   vector<int> ::iterator it;
   vector<int> :: reverse_iterator rev_it;
   for(it = vec.begin(); it != vec.end(); it++)
      cout<<*it<<" ";
      cout<< endl;
   for(rev_it = vec.rbegin(); rev_it!= vec.rend(); rev_it++)
      cout<<*rev_it<<" ";
}

ผลลัพธ์

10 20 30 40 50 60 70 80 90 100
100 90 80 70 60 50 40 30 20 10