Giả sử tôi có một véc tơ A = {1 0 1 1 0 0 0 1 0}
. Bây giờ tôi muốn lấy các chỉ số của tất cả các lần xuất hiện của 0 được trả về như một vectơ khác B
.Tìm các chỉ mục của tất cả các lần xuất hiện của một phần tử trong một vector
template< class InputIt, class T>
std::vector<int> IndicesOf(InputIt first, InputIt last, const T& value) {
}
Dưới đây là một khởi đầu:
std::vector<int>::iterator iter = std::find_if(A.begin(), A.end(), 0);
B = std::distance(A.begin(), iter);
@ScottMorken không nên mà được 'template std :: vector ...'? OP đang tìm kiếm một tập hợp các chỉ mục, không phải là một tập hợp các bản sao của các phần tử. –
jaggedSpire
có bạn đã đúng, chỉnh sửa lại –