Chúng tôi được cung cấp một vectơ và nhiệm vụ là tính số lượng các phần tử đó trong một vectơ khớp với giá trị hoặc điều kiện mục tiêu.
Vectơ là vùng chứa trình tự có thể thay đổi kích thước. Container là một đối tượng chứa dữ liệu cùng loại. Vùng chứa trình tự lưu trữ các phần tử theo đúng trình tự tuyến tính.
Vector lưu trữ các phần tử ở các vị trí bộ nhớ liền nhau và cho phép truy cập trực tiếp vào bất kỳ phần tử nào bằng toán tử chỉ số con []. Không giống như mảng, vectơ có thể thu nhỏ hoặc mở rộng khi cần thiết tại thời điểm chạy. Việc lưu trữ vectơ được xử lý tự động.
Để hỗ trợ chức năng thu nhỏ và mở rộng trong thời gian chạy, các thùng chứa vectơ có thể phân bổ thêm một số bộ nhớ để đáp ứng cho sự phát triển có thể xảy ra, do đó các thùng chứa có dung lượng thực tế lớn hơn kích thước. Do đó, so với mảng, vectơ tiêu tốn nhiều bộ nhớ hơn để đổi lấy khả năng quản lý bộ nhớ và phát triển động một cách hiệu quả.
Ví dụ
Input − vector vec = {1, 2, 3, 4, 4, 4, 4} Target = 4 Output − count is: 4
Giải thích - trong vectơ đã cho, mục tiêu đang xảy ra 4 lần nên số lượng là 4
Input − vector vec = {1, 2, 3} Target = 4 Output − count is: 0
Giải thích - trong vectơ đã cho, mục tiêu đang xảy ra 0 lần nên số lượng là 0
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Nhập vectơ và lưu trữ nó trong một biến loại vectơ, giả sử vec
-
Đặt giá trị mục tiêu dưới dạng giá trị số nguyên
-
Lấy một biến tạm thời sẽ lưu trữ số lượng
-
Gọi hàm đếm có sẵn trong C ++ STL và chuyển vec.begin (), vec.end (), nhắm mục tiêu đến lệnh gọi hàm
-
In kết quả.
Ví dụ
#include <algorithm> #include <iostream> #include <vector> using namespace std; int main(){ vector<int> myvector{ 1, 2, 3, 4, 4, 4, 4, 4 }; int target = 4; int res = count(myvector.begin(), myvector.end(), target); cout << "Target is: " << target << "\nCount is: " << res << endl; return 0; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, chúng ta sẽ nhận được kết quả sau -
Target is: 4 Count is: 5