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

ค้นหาหลายแผนที่ ( ) ใน C ++ STL


ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน multimap::find() ใน C++ STL

มัลติแมปใน C++ STL คืออะไร

Multimaps เป็นคอนเทนเนอร์ที่เชื่อมโยงกัน ซึ่งคล้ายกับคอนเทนเนอร์แผนที่ นอกจากนี้ยังอำนวยความสะดวกในการจัดเก็บองค์ประกอบที่เกิดจากการรวมกันของค่าคีย์และค่าที่แมปในลำดับเฉพาะ ในคอนเทนเนอร์แบบหลายแผนที่ อาจมีองค์ประกอบหลายรายการที่เกี่ยวข้องกับคีย์เดียวกัน ข้อมูลจะถูกจัดเรียงภายในเสมอโดยใช้คีย์ที่เกี่ยวข้อง

multimap::find() คืออะไร

multimap::find( ) ฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว find() ค้นหาองค์ประกอบในคอนเทนเนอร์ที่เชื่อมโยงกับคีย์ K ฟังก์ชันนี้ส่งคืนตัววนซ้ำที่ชี้ไปที่องค์ประกอบเดียวในคอนเทนเนอร์ ส่งคืนตัววนซ้ำหากองค์ประกอบที่พบในคอนเทนเนอร์

ไวยากรณ์

iterator multimap_name.find(key);

พารามิเตอร์

ยอมรับหนึ่งคีย์พารามิเตอร์ซึ่งระบุคีย์ที่จะค้นหาในคอนเทนเนอร์

คืนค่า

ฟังก์ชันนี้ส่งคืนตัววนซ้ำซึ่งอ้างอิงถึงตำแหน่งที่มีคีย์อยู่ในคอนเทนเนอร์

ป้อนข้อมูล

multimap<char, int > newmap;
newmap.insert(make_pair(‘A’, 22));
newmap.insert(make_pair(‘B’, 78));
newmap.insert(make_pair(‘C’, 66));
newmap.insert(make_pair(‘D’, 81));
newmap.insert(make_pair(’E’, 43));
newmap.find(‘D’);

ผลผลิต

81

ป้อนข้อมูล

multimap<char, int > newmap;
newmap.insert(make_pair(1, 15));
newmap.insert(make_pair(2, 18));
newmap.insert(make_pair(3, 45));
newmap.insert(make_pair(4, 66));
newmap.find(4);

ผลผลิต

66

แนวทางสามารถติดตามได้

  • ขั้นแรก เราเริ่มต้นแผนที่

  • จากนั้นเราก็แทรกองค์ประกอบด้วยคีย์

  • จากนั้นเราจะหาตำแหน่งของคีย์โดยใช้ฟังก์ชัน mapfind ( )

  • จากนั้นเราพิมพ์คีย์ที่ต้องการด้วยองค์ประกอบ

เมื่อใช้วิธีการข้างต้น เราจะสามารถค้นหาคีย์ใดๆ ในคอนเทนเนอร์ เราสามารถค้นหาตำแหน่งของคีย์ในช่วงต่างๆ ได้

ตัวอย่าง

#include<iostream.h>
#include<map.h>
Using namespace std;
int main( ){
   Multimap<char, int> mp;
   / / inserting the element
   mp.insert({‘b’, 23});
   mp.insert({‘a’, 46});
   mp.insert({‘c’, 78});
   mp.insert({‘e’, 11});
   mp.insert({‘d’, 34});
   cout<< “ The Key value after key c : \n” ;
   cout<< “ Key\t Element”;
   for(auto i = mp.find(‘c’); i != mp.end( ); i++)
      cout<<i-first<< “\t” << i->second << ‘\n’;
   return 0;
}

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

KEY ELEMENT
c 78
d 34
e 11

ตัวอย่าง

#include<iostream.h>
#include<map.h>
Using namespace std;
int main( ){
   Multimap<char, int> mp;
   / / inserting the element
   mp.insert({‘1’, 33});
   mp.insert({‘2’, 66});
   mp.insert({‘3’, 55});
   mp.insert({‘4’, 11});
   mp.insert({‘5’, 44});
   cout<< “ The Key value after key 4 : \n” ;
   cout<< “ Key\t Element”;
   for(auto i = mp.find(‘4’); i != mp.end( ); i++)
      cout<<i-first<< “\t” << i->second << ‘\n’;
   return 0;
}

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

KEY ELEMENT
4 11
5 44