Tôi muốn sử dụng std :: find_if để tìm kiếm phần tử đầu tiên trong bản đồ có giá trị nhất định trong một phần tử cụ thể của cấu trúc giá trị của nó. Tôi là một chút bối rối mặc dù. Tôi nghĩ rằng tôi cần phải sử dụng bind1st hoặc bind2nd, nhưng tôi không tích cực đó là đúng cách để đi.std :: map find_if nhầm lẫn kiểu trạng thái
Dưới đây là một số mã giả:
struct ValueType { int x, int y, int z };
std::map<int, ValueType> myMap;
... {populate map}
std::map<int, ValueType>::iterator pos = std::find_if(myMap.begin(), myMap.end(), <?>);
Vì vậy, chúng ta hãy nói rằng tôi muốn tìm phần tử đầu tiên của bản đồ, nơi các thành viên .x của ValueType là tương đương với một giá trị số nguyên nào đó (mà có thể thay đổi từng cuộc gọi).
Cách tốt nhất để viết hàm hoặc đối tượng hàm để đạt được điều này là gì? Tôi hiểu rằng đó phải là một biến vị ngữ đơn nhất làm cho tôi nghĩ rằng tôi sẽ cần bind1st hoặc bind2nd để cung cấp giá trị số nguyên mà tôi đang kiểm tra, nhưng tôi không chắc chắn làm thế nào để đi về nó. Đã quá lâu rồi kể từ khi tôi nhìn vào thứ này! >. <
Kể từ khi các yếu tố trong bản đồ đều được sắp xếp theo mã, thứ tự các mục là rõ ràng, và yêu cầu người đầu tiên thực hiện một điều kiện là như vậy, cũng được xác định rõ. – celtschk
Có, nó được xác định rõ. Nhưng thứ tự không phụ thuộc vào giá trị của ValueType. Đó là điều tôi đang cố nói. –
Cảm ơn, chính xác những gì tôi cần :) –