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

มัลติแมป ::ลบ () ใน C ++ STL


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

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

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

มัลติแมป::ลบ() คืออะไร

ฟังก์ชัน multimap::erase() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว Erase() ใช้เพื่อลบหรือลบองค์ประกอบออกจากคอนเทนเนอร์แบบหลายแผนที่

ฟังก์ชันนี้สามารถลบหรือลบองค์ประกอบด้วยปุ่ม ตำแหน่ง หรือช่วงที่กำหนด เมื่อเราเรียกใช้ฟังก์ชันนี้ ขนาดของคอนเทนเนอร์ multimap จะลดลงตามจำนวนองค์ประกอบที่จะถูกลบออก

ไวยากรณ์

multimap_name.erase(key_type key);
multimap_name.erase(const_iterator it);
multimap_name.erase(const_ iterator start, const_itertaor end);

พารามิเตอร์

ฟังก์ชันยอมรับพารามิเตอร์ต่อไปนี้ −

  • คีย์ − นี่คือตำแหน่งของกุญแจที่มีองค์ประกอบที่เราต้องการลบออก

  • มัน − ตำแหน่งตัววนซ้ำจากตำแหน่งที่เราต้องการลบองค์ประกอบ

  • เริ่ม สิ้นสุด − สิ่งนี้กำหนดช่วงจากตำแหน่งใดจนถึงตำแหน่งใดที่ชุดขององค์ประกอบควรถูกลบออก

คืนค่า

ฟังก์ชันนี้จะคืนค่าจำนวนองค์ประกอบที่ถูกลบออกจากคอนเทนเนอร์ที่เกี่ยวข้อง

ป้อนข้อมูล

std::multimap<int> mymap;
mymap.insert({‘a’, 10});
mymap.insert({‘b’, 20});
mymap.insert({‘c’, 30});
mymap.erase(‘b’);

ผลผลิต

a:10 c:30

ตัวอย่าง

//ลบคีย์ที่กำหนด

#include<iostream>
#include<map>
using namespace std;
int main(){
   multimap<int,char > mul_1;
   //declaring iterator to traverse the elements
   multimap<int,char>:: iterator i;
   //inserting elements to multimap1
   mul_1.insert(make_pair(0,'a'));
   mul_1.insert(make_pair(1,'b'));
   mul_1.insert(make_pair(2,'c'));
   mul_1.insert(make_pair(3,'d'));
   mul_1.insert(make_pair(4,'e'));
   mul_1.insert(make_pair(5,'f'));
   mul_1.insert(make_pair(6,'g'));
   //calling erase() to delete the element
   mul_1.erase(1);
   mul_1.erase(4);
   mul_1.erase(6);
   mul_1.erase(5);
   //elements of multimap1
   cout<<"Elements in multimap1 are: "<<"\n";
   for( i = mul_1.begin(); i!= mul_1.end(); i++){
      cout<<(*i).first<<" "<< (*i).second << "\n";
   }
}

ผลลัพธ์

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

Elements in multimap1 are:
0 a
2 c
3 d

ตัวอย่าง

//การลบองค์ประกอบภายในช่วงที่กำหนด

#include<iostream>
#include<map>
using namespace std;
int main(){
   multimap<int,char > mul_1;
   //declaring iterator to traverse the elements
   multimap<int,char>:: iterator i;
   //inserting elements to multimap1
   mul_1.insert(make_pair(0,'a'));
   mul_1.insert(make_pair(1,'b'));
   mul_1.insert(make_pair(2,'c'));
   mul_1.insert(make_pair(3,'d'));
   mul_1.insert(make_pair(4,'e'));
   mul_1.insert(make_pair(5,'f'));
   mul_1.insert(make_pair(6,'g'));
   //elements in multimap before erasing
   cout<<"Elements in multimap1 are: "<<"\n";
   for( i = mul_1.begin(); i!= mul_1.end(); i++){
      cout<<(*i).first<<" "<< (*i).second << "\n";
   }
   //calling erase() to delete the element
   auto start = mul_1.find(3);
   auto end = mul_1.find(6);
   mul_1.erase(start, end);
   //elements of multimap1 after erasing
   cout<<"Elements in multimap1 are: "<<"\n";
   for( i = mul_1.begin(); i!= mul_1.end(); i++){
      cout<<(*i).first<<" "<< (*i).second << "\n";
   }
}

ผลลัพธ์

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

Elements in multimap1 are:
0 a
1 b
2 c
3 d
4 e
5 f
6 g
Elements in multimap1 are:
0 a
1 b
2 c
6 g

ตัวอย่าง

//กำลังลบองค์ประกอบที่ตำแหน่งที่กำหนด

#include<iostream>
#include<map>
using namespace std;
int main(){
   multimap<int,char > mul_1;
   //declaring iterator to traverse the elements
   multimap<int,char>:: iterator i;
   //inserting elements to multimap1
   mul_1.insert(make_pair(0,'a'));
   mul_1.insert(make_pair(1,'b'));
   mul_1.insert(make_pair(2,'c'));
   mul_1.insert(make_pair(3,'d'));
   mul_1.insert(make_pair(4,'e'));
   mul_1.insert(make_pair(5,'f'));
   mul_1.insert(make_pair(6,'g'));
   //elements in multimap before erasing
   cout<<"Elements in multimap1 are: "<<"\n";
   for( i = mul_1.begin(); i!= mul_1.end(); i++){
      cout<<(*i).first<<" "<< (*i).second << "\n";
   }
   //calling erase() to delete the element
   auto first = mul_1.find(1);
   mul_1.erase(first);
   auto second = mul_1.find(6);
   mul_1.erase(second);
   auto third = mul_1.find(2);
   mul_1.erase(third);
   //elements of multimap1 after erasing
   cout<<"Elements in multimap1 are: "<<"\n";
   for( i = mul_1.begin(); i!= mul_1.end(); i++){
      cout<<(*i).first<<" "<< (*i).second << "\n";
   }
}

ผลลัพธ์

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

Elements in multimap1 are:
0 a
1 b
2 c
3 d
4 e
5 f
6 g
Elements in multimap1 are:
0 a
3 d
4 e
5 f