Tính tổng các phần tử trong multiset C++ (accumulate) | Laptrinhcanban.com

Tính tổng các phần tử trong multiset C++ (accumulate)

Hướng dẫn cách tính tổng các phần tử trong multiset C++. Bạn sẽ học được cách sử dụng hàm accumulate để tính tổng tất cả các phần tử có trong multiset C++ sau bài học này.

Tính tổng các phần tử trong multiset C++ bằng std::accumulate

std::accumulate là một function template, có tác dụng tính tổng các phần tử có trong một đối tượng C++ chứa nhiều phần tử.

Chúng ta có thể dùng std::accumulate không những để tính tổng các phần tử trong multiset mà còn có thể tính tổng các phần tử trong các đối tượng khác như vector hay map trong C++ chẳng hạn.

Để sử dụng hàm std::accumulate, chúng ta cần include header file numeric vào đầu chương trình như sau:

#include <numeric>

Cú pháp sử dụng hàm accumulate để tính tổng các phần tử trong multiset C++ như sau:

std::accumulate(st.begin(), st.end(), 0);

Trong đó st là tên multiset cần tính tổng các phần tử trong thứ tự các phần tử, còn st.begin()st.end() lần lượt là các trình lặp có tác dụng như con trỏ chỉ đến vị trí đầu tiên và cuối cùng của multiset. Đối số cuối cùng (0) là giá trị khởi tạo của tổng.

Ngoài ra do std::accumulate cũng có namespace là std nên nếu đã khai báo namespace này đầu chương trình thì chúng ta cũng có thể lược bỏ đi dòng std khi sử dụng hàm.

Ví dụ cụ thể:

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

int main ()
{
multiset<int> st{3, 1, 4, 2, 5, 2};

int sum = accumulate(st.begin(), st.end(), 0);
cout << "SUM = " << sum << endl;
return 0;
}

Kết quả:

SUM = 17

Tính tổng các phần tử trong multiset C++ bằng vòng lặp

Ngoài cách sử dụng tới hàm accumulate thì chúng ta cũng có thể sử dụng vòng lặp hoặc trình lặp để truy xuất tới từng phần tử và tính tổng của chúng.

Hãy sử dụng tới một trong cách truy xuất phần tử trong multiset C++ mà Kiyoshi đã giới thiệu trong bài Duyệt multiset trong C++ để giải bài toán này.

Ví dụ cụ thể, chúng ta sử dụng vòng lặp dựa trên phạm vi để tính tổng các phần tử trong multiset C++ như sau:

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

int main()
{
multiset<int> st{3, 1, 4, 2, 5};
int sum = 0;

for (auto x: st) {
sum += x;
}
cout << "SUM = " << sum << endl;
return 0;
}

Và kết quả:

SUM = 17

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách tính tổng các phần tử trong multiset 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.