30/09/2018, 18:28

[C++] 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ị.

Gió viết 20:38 ngày 30/09/2018

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);
Hoa Hoa viết 20:34 ngày 30/09/2018

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

Bài liên quan
0