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

ตั้งค่าการแทรก () ใน C ++ STL


ในบทความนี้ เราจะพูดถึงฟังก์ชัน set::insert() ใน C++ STL, ไวยากรณ์, การทำงาน และค่าที่ส่งคืน

การตั้งค่าใน C++ STL คืออะไร

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

ชุด::insert() คืออะไร

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

ไวยากรณ์

Set1.insert(const type_t &value); ----(1)
Or
Set1.insert(iterator position, const type_t &value); -----(2)
Or
Set1.insert(iterator position_1, iterator position_2); -----(3)

พารามิเตอร์

  • ค่า - เป็นค่าที่จะใส่ในภาชนะที่ตั้งไว้

  • ตำแหน่ง − มันคือคำใบ้ไปยังตำแหน่ง มันจะเริ่มค้นหาจากตำแหน่งนี้และแทรกองค์ประกอบในตำแหน่งที่เหมาะสมที่จะแทรก

  • position_1, position_2 - นี่คือตัววนซ้ำซึ่งระบุช่วงที่จะแทรกในชุดที่เกี่ยวข้องกับการแทรก () position_1 สำหรับการเริ่มต้นของช่วงและ position_2 สำหรับการสิ้นสุดของช่วง

คืนค่า

ฟังก์ชันส่งคืนค่าประเภทต่างๆ ตามอาร์กิวเมนต์ที่ส่งผ่านในฟังก์ชัน

  • เมื่อเราส่งต่อเฉพาะค่า ฟังก์ชั่นส่งคืน iterator ที่ชี้ไปยังองค์ประกอบที่จะถูกแทรกใน set container

  • เมื่อเราผ่านตำแหน่งที่มีค่า ฟังก์ชันจะคืนค่า iterator อีกครั้งที่ชี้ไปยังองค์ประกอบที่กำลังถูกแทรกในคอนเทนเนอร์ที่ตั้งไว้

  • เมื่อเราผ่าน position_1 และ position_2; ฟังก์ชันจะคืนค่าชุดของค่าที่มาระหว่างช่วงโดยเริ่มจาก position_1 และสิ้นสุดที่ position_2

ตัวอย่าง

Input: set<int> myset;
   myset.insert(10);
Output: values in the set = 10
Input: set <int> myset = {11, 12, 13, 14};
   myset.insert(myset.begin(), 10);
Output: values in the set = 10 11 12 13 14

ตัวอย่าง

การแทรกองค์ประกอบในชุดในคิวเช่นทีละรายการ

#include <bits/stdc++.h>
using namespace std;
int main(){
   set<int> mySet;
   mySet.insert(10);
   mySet.insert(20);
   mySet.insert(30);
   mySet.insert(40);
   mySet.insert(50);
   cout<<"Elements are: ";
   for (auto i = mySet.begin(); i != mySet.end(); i++)
      cout << *i << " ";
   return 0;
}

ผลลัพธ์

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

Elements are : 10 20 30 40 50

ตัวอย่าง

การแทรกองค์ประกอบเข้ากับชุดตามตำแหน่ง

#include <bits/stdc++.h>
using namespace std;
int main(){
   set<int> mySet;
   auto i = mySet.insert(mySet.begin(), 10);
   i = mySet.insert(i, 20);
   i = mySet.insert(i, 40);
   i = mySet.insert(i, 30);
   i = mySet.insert(i, 80);
   i = mySet.insert(mySet.end(), 90);
   cout<<"Elements are: ";
   for (auto i = mySet.begin(); i != mySet.end(); i++)
      cout << *i << " ";
   return 0;
}

ผลลัพธ์

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

Elements are: 10 20 30 40 80 90