Tôi đang cố gắng lọc một vectơ để nó chỉ chứa một giá trị cụ thể.Bạn có thể chuyển một tham số bổ sung cho vị từ không?
ví dụ: Đảm bảo rằng vectơ chỉ chứa các phần tử của giá trị "abc".
Hiện tại, tôi đang cố gắng đạt được điều này với remove_copy_if
.
Có cách nào để chuyển một tham số bổ sung cho một biến vị ngữ khi sử dụng một trong các thuật toán của std không?
std::vector<std::string> first, second;
first.push_back("abc");
first.push_back("abc");
first.push_back("def");
first.push_back("abd");
first.push_back("cde");
first.push_back("def");
std::remove_copy_if(first.begin(), first.end(), second.begin(), is_invalid);
tôi hy vọng để vượt qua các chức năng sau đây như một vị nhưng có vẻ như nhiều khả năng rằng điều này sẽ chỉ kết thúc so sánh giá trị hiện tại được kiểm tra bởi remove_copy_if
và tiếp theo.
bool is_invalid(const std::string &str, const std::string &wanted)
{
return str.compare(wanted) != 0;
}
Tôi có cảm giác mình có thể tiếp cận sai điều này nên mọi đề xuất sẽ được đánh giá cao!
Cảm ơn
Chỉ cần tự hỏi - bạn sử dụng một vector chỉ với các phần tử giống hệt nhau để làm gì? – Zane
Tôi đã cố gắng làm cho ví dụ của mình càng đơn giản càng tốt để nó có ý nghĩa :) Những gì tôi đã làm với điều này là để loại bỏ các phần tử từ một vectơ phù hợp với một mẫu nhất định (với regex). – noko