Thêm chèn phần tử vào set trong C++ | Laptrinhcanban.com

Thêm chèn phần tử vào set trong C++

Hướng dẫn cách thêm chèn phần tử vào set trong C++. Bạn sẽ học được cách dùng hàm insert để chèn thêm phần tử vào set trong C++ sau bài học này.

Để chèn phần tử vào set trong C++, chúng ta sử dụng tới hàm thành viên insert(). Do khi chèn phần tử vào set thì vị trí chèn sẽ được tự động quyết định tùy thuộc vào bộ sắp xếp trong set, nên lưu ý khác với các containers khác như list hay vector thì trong set không tồn tại</> các hàm push_back() hay push_front() để thêm phần tử vào đầu hay cuối set.

Chèn 1 phần tử vào set trong C++ bằng hàm insert

Hàm insert là một hàm thành viên trong class std:list, có tác dụng chèn một hoặc nhiều phần tử vào set cũng như tăng độ dài tương ứng của nó.

Để chèn 1 phần tử vào trong set C++, chúng ta sử dụng hàm insert với cú pháp sau đây:

st.insert(value);

Trong đó st là set ban đầu, và value là phần tử cần chèn.

Hàm set insert sẽ trả về một cặp kết quả pair<iterator, bool> với iterator là trình lặp của set kết quả, và bool là việc có thực hiện việc chèn hay không, dưới dạng 0 hoặc 1.

Bởi vì các phần tử trong một set là duy nhất, nên thao tác chèn sẽ kiểm tra xem mỗi phần tử được chèn đã tồn tại trong set hay chưa. Nếu chưa tồn tại thì phần tử đó sẽ được chèn và ngược lại nếu đã tồn tại thì không được chèn.

Trong trường hợp tất cả các phần tử chèn vào vốn đã tồn tại từ trước trong set, thì bản thân set ban đầu sẽ được trả về.

Lại nữa, phần tử trong set được sắp xếp theo thứ tự cụ thể trước khi được lưu, nên các phần tử cần chèn thêm vào set sẽ được tự động quyết định vị trí dựa trên bộ sắp xếp, và chúng ta sẽ không quyết định được vị trí cần chèn của phần tử.

Ví dụ cụ thể:

#include <iostream>
#include <set>
using namespace std;

//Tạo hàm xuất set
void dump(set<int>& st)
{
for (auto x: st) {
cout << " "<< x ;
}
cout << endl;
}


int main ()
{
set<int> st{1, 3, 6, 7, 5};
dump(st);

//chèn phần tử đã tồn tại trong set
st.insert(3);
dump(st);

//chèn phần tử chưa tồn tại trong set
st.insert(4);
dump(st);

return 0;
}

Kết quả:

1 3 5 6 7
1 3 5 6 7
1 3 4 5 6 7

Chúng ta cũng có thể kiểm tra việc chèn phần tử đã thực hiện hay chưa bằng phương thức first() hoặc second() từ kết quả trả về của hàm như sau:

#include <iostream>
#include <set>
using namespace std;

int main ()
{
set<int> st{1, 3, 6, 7, 5};
auto r = st.insert(3);
std::cout << r.second << "\n";
// 0 : không chèn

r = st.insert(4);
std::cout << r.second << "\n";
// 1 : đã chèn

return 0;
}

Chèn nhiều phần tử vào set trong C++ bằng hàm insert

Để chèn nhiều phần tử vào trong set C++, chúng ta sử dụng hàm insert với cú pháp sau đây:

st.insert(il);

Trong đó st là set ban đầu, và il là một initializer_list chứa các phần tử cần chèn vào set.

Ví dụ cụ thể:

#include <iostream>
#include <set>

using namespace std;

//Tạo hàm xuất set
void dump(set<int>& st)
{
for (auto x: st) {
cout << " "<< x ;
}
cout << endl;
}


int main ()
{
set<int> st{1, 3, 6, 7, 5};
dump(st);

/*Khai báo initializer_list chứa phần tử cần chèn */
int myints[]= {2,10,15};

/*Chèn initializer_list vào set*/
st.insert (myints,myints+3);

dump(st);

return 0;
}

Và kết quả:

1 3 5 6 7
1 2 3 5 6 7 10 15

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách thêm chèn chèn phần tử vào set trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.