Computer >> Máy Tính >  >> Lập trình >> C ++

Đặt insert () trong C ++ STL

Trong bài viết này, chúng ta sẽ thảo luận về hàm set ::insert () trong C ++ STL, cú pháp, cách làm việc và giá trị trả về của chúng.

Đặt trong C ++ STL là gì?

Các bộ trong C ++ STL là các bộ chứa phải có các phần tử duy nhất theo thứ tự chung. Tập hợp phải có các phần tử duy nhất vì giá trị của phần tử xác định phần tử. Sau khi đã thêm một giá trị trong vùng chứa đã đặt thì không thể sửa đổi được, mặc dù chúng tôi vẫn có thể xóa hoặc thêm các giá trị vào tập hợp. Các tập hợp được sử dụng làm cây tìm kiếm nhị phân.

Set ::insert () là gì?

Hàm insert () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . Hàm này được sử dụng để chèn các phần tử trong vùng chứa đã đặt. khi chúng ta chèn phần tử, kích thước của vùng chứa sẽ tăng lên bằng số lượng phần tử được chèn. Vì tập hợp chứa các giá trị duy nhất, insert () không chỉ chèn phần tử mà trước tiên, nó kiểm tra xem phần tử sẽ được chèn có không có trong vùng chứa tập hợp hay không. Ngoài ra, trong tập hợp, tất cả các phần tử được lưu trữ ở vị trí đã sắp xếp, vì vậy phần tử chúng ta sẽ chèn sẽ được chèn theo vị trí đã sắp xếp của nó.

Cú pháp

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)

Tham số

  • value - Đây là giá trị sẽ được chèn vào vùng chứa đã đặt.

  • vị trí - Đây là gợi ý cho vị trí, nó sẽ bắt đầu tìm kiếm từ vị trí này và chèn phần tử vào vị trí phù hợp để chèn.

  • vị trí_1, vị trí_2 - Đây là các trình vòng lặp chỉ định phạm vi sẽ được chèn vào tập hợp được liên kết với insert (). vị trí_1 để bắt đầu dải ô và vị trí_2 cho cuối dải ô.

Giá trị trả về

Hàm trả về các loại giá trị khác nhau tùy theo các đối số được truyền vào trong hàm.

  • Khi chúng ta chỉ truyền giá trị; hàm trả về trình vòng lặp trỏ đến phần tử đang được chèn vào vùng chứa đã đặt.

  • Khi chúng ta vượt qua vị trí với giá trị; hàm lại trả về trình vòng lặp trỏ đến phần tử đang được chèn vào vùng chứa đã đặt.

  • Khi chúng ta vượt qua vị trí_1 và vị trí_2; hàm trả về tập hợp các giá trị nằm giữa phạm vi bắt đầu từ vị trí_1 và kết thúc tại vị trí_2.

Ví dụ

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

Ví dụ

Chèn các phần tử vào một tập hợp trong một hàng đợi, tức là lần lượt các phần tử

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên thì nó sẽ tạo ra kết quả sau -

Elements are : 10 20 30 40 50

Ví dụ

Chèn các phần tử vào tập hợp dựa trên vị trí

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên thì nó sẽ tạo ra kết quả sau -

Elements are: 10 20 30 40 80 90