Mảng và vector là các cấu trúc dữ liệu rất quan trọng trong lập trình thi đấu để giải quyết bài toán. Và STL (Thư viện Mẫu Chuẩn) trong lập trình C++ cung cấp một số hàm để thực hiện các thao tác trên mảng và vector.
Hãy xem một số hàm này hoạt động,
Tìm tổng, Min và Max của mảng/vector - Trong STL có hàm giúp bạn tìm tổng, max, và min của mảng/vector. Các hàm với chức năng của chúng:
Tìm tổng
accumulate(startIndex, endIndex, initialSum)
Phần tử lớn nhất của mảng/vector
*max_element(startIndex, endIndex)
Phần tử nhỏ nhất của mảng/vector
*min_element(startIndex, endIndex)
Chương trình thực hiện thao tác trên mảng:
Ví dụ
#include <bits/stdc++.h> using namespace std; int main(){ int array[] = {65, 7,12, 90, 31, 113 }; int l = sizeof(array) / sizeof(array[0]); cout<<"Các phần tử của mảng là : "; for(int i = 0; i<l; i++) cout<<array[i]<<"\t"; cout<<endl; cout<<"Tổng tất cả phần tử của mảng: "<<accumulate(array, array + l, 0)<<endl; cout<<"Phần tử có giá trị lớn nhất trong mảng: "<<*max_element(array, array + l)<<endl; cout<<"Phần tử có giá trị nhỏ nhất trong mảng: "<<*min_element(array, array + l)<<endl; return 0; }Đầu ra
Các phần tử của mảng là : 65 7 12 90 31 113 Tổng tất cả phần tử của mảng: 318 Phần tử có giá trị lớn nhất trong mảng: 113 Phần tử có giá trị nhỏ nhất trong mảng: 7
Chương trình thực hiện thao tác trên vector:
Ví dụ
#include <bits/stdc++.h> using namespace std; int main(){ vector<int> vec= {65, 7,12, 90, 31, 113 }; cout<<"Tổng tất cả phần tử của vector: "<<accumulate(vec.begin(), vec.end() + 1, 0)<<endl; cout<<"Phần tử có giá trị lớn nhất trong vector: "<<*max_element(vec.begin(), vec.end())<<endl; cout<<"Phần tử có giá trị nhỏ nhất trong vector: "<<*min_element(vec.begin(), vec.end())<<endl; return 0; }Đầu ra
Tổng tất cả phần tử của vector: 318 Phần tử có giá trị lớn nhất trong vector: 113 Phần tử có giá trị nhỏ nhất trong vector: 7
Sắp xếp phần tử của mảng/vector:
Trong STL, có hàm sort() có thể dùng để sắp xếp phần tử của mảng/vector. Hàm này dùng kỹ thuật quick sort để sắp xếp mảng/vector.
Cú pháp
sort(startIndex, endIndex)
Chương trình sắp xếp phần tử của mảng:
Ví dụ
#include <bits/stdc++.h> using namespace std; int main(){ int array[] = {65, 7,12, 90, 31, 113 }; int l = sizeof(array) / sizeof(array[0]); cout<<"Các phần tử của mảng là : "; for(int i = 0; i<l; i++) cout<<array[i]<<"\t"; cout<<endl; cout<<"\nSắp xếp phần tử của mảng...\n\n"; sort(array, array+l); cout<<"Mảng đã sắp xếp là : "; for(int i = 0; i<l; i++) cout<<array[i]<<"\t"; cout<<endl; return 0; }Đầu ra
Các phần tử của mảng là : 65 7 12 90 31 113 Sắp xếp phần tử của mảng... Mảng đã sắp xếp là : 7 12 31 65 90 113
Chương trình sắp xếp phần tử của vector:
Ví dụ
#include <bits/stdc++.h> using namespace std; int main(){ vector<int> vec = {65, 7,12, 90, 31, 113 }; cout<<"Các phần tử của vector là : "; for(int i = 0; i<vec.size(); i++) cout<<vec[i]<<"\t"; cout<<endl; cout<<"\nSắp xếp phần tử của vector...\n\n"; sort(vec.begin(), vec.end()); cout<<"Vector đã sắp xếp là : "; for(int i = 0; i<vec.size(); i++) cout<<vec[i]<<"\t"; cout<<endl; return 0; }Đầu ra
Các phần tử của vector là : 65 7 12 90 31 113 Sắp xếp phần tử của vector... Vector đã sắp xếp là : 7 12 31 65 90 113