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

ฟังก์ชัน Upper_bound () แบบมัลติแมปใน C ++ STL


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

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

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

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

ฟังก์ชัน multimap::upper_bound() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว upper_bound() ส่งคืนตัววนซ้ำไปยังขอบเขตบนของคอนเทนเนอร์มัลติแมป ฟังก์ชันนี้ส่งคืนตัววนซ้ำซึ่งชี้ไปที่องค์ประกอบสุดท้ายซึ่งถือว่าอยู่หลังคีย์ k

ไวยากรณ์

Map_name.upper_bound(key& k);

พารามิเตอร์

ฟังก์ชันนี้ยอมรับได้เพียง 1 พารามิเตอร์ -

  • เค − กุญแจที่เราต้องการค้นหา

คืนค่า

ฟังก์ชันนี้ส่งคืนตัววนซ้ำซึ่งชี้ไปยังองค์ประกอบถัดไปของคีย์ 'k' ซึ่งถือว่าเป็นไปตามคีย์ k

ป้อนข้อมูล

map<char, int> newmap;
newmap(make_pair(‘a’, 1));
newmap(make_pair(‘b’, 2));
newmap(make_pair(‘c’, 3));
newmap.upper_bound(b);

ผลลัพธ์

c:3

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int main(){
   //creating a multimap
   multimap<int, int> mul;
   mul.insert({ 2, 10 });
   mul.insert({ 1, 20 });
   mul.insert({ 1, 30 });
   mul.insert({ 3, 40 });
   mul.insert({ 3, 50 });
   mul.insert({ 4, 60 });
   // upper bound of 1
   auto i = mul.upper_bound(1);
   cout << "Upper bound of key 1 is: ";
   cout << (*i).first << " "<<(*i).second << endl;
   // upper bound of 2
   i = mul.upper_bound(2);
   cout << "Upper bound of key 2 is: ";
   cout << (*i).first << " " <<(*i).second << endl;
   // upper bound of 3
   i = mul.upper_bound(3);
   cout << "Upper bound of key 3 is: ";
   cout << (*i).first << " " << (*i).second << endl;
   return 0;
}

ผลลัพธ์

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

Upper bound of key 1 is: 2 10
Upper bound of key 2 is: 3 40
Upper bound of key 3 is: 4 60