Tìm số phần tử có cùng giá trị trong 1 vector

Ví dụ em có 1 vector như sau:

vector<int> A;
A.push_back(5);
A.push_back(1);
A.push_back(1);
A.push_back(1);

//A = {5, 1, 1, 1}

Có hàm nào trong C++ có thể tìm một giá trị bất kỳ trong vector và cho ra số lượng phần tử đó không? Ví dụ em muốn tìm trong vector A có bao nhiêu phần tử = 1 thì kết quả sẽ là 3. Em mò mãi trong cái thư viện <algorithm> mà vẫn chưa thấy.

P/S: Em đang làm bài tập Lý thuyết đồ thị.

Nếu mà A chưa sắp xếp thì dùng count

int cnt=count(A.begin(),A.end(),1);  // = 3

Nếu sắp xếp theo 1 thứ tự nào đó:

auto eq_range=equal_range(A.begin(),A.end(),1,cmp);
int cnt=distance(eq_range.first,eq_range.second);
1 Like

cnt=distance là gì vậy bạn? Mình tìm ko thấy

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?