Я не понимаю, почему второй> родитель показывает мне все время 2. Вектора содержитfind_if странные значения
{{2,4,0},{2,5,0},{2,6,0},{1,2,0},{8,7,0},{7,3,0},{10,9,0},{11,9,0},{3,9,0}, {1,3,0}, {0,1,11}}
В VS 2013 я получил ошибку в течение по Ideone она работает , но пилит меня все время второго> родитель = 2.
struct tester {
int parent, number, child;
};
std::vector <tester> test;
test.push_back({ 0,1, 11 });
std::vector <tester>::iterator first, second;
for (first = test.begin() + 1, second = test.begin(); first != test.end(); ++first) {
if (first->parent <= second->parent) {
parent = first->parent;
auto pred = [parent](pracownik& item) {
return item.parent == parent;
};
second = std::find_if(first - 1, test.begin(), pred);
first->child = first - second;
if (first->child == 1) first->child = 0;
second = first;
}
}
программа должна изменить вектор на:
{ {2,4,0},{2,5,0},{2,6,0},{1,2,3},{8,7,0},{7,3,1},{10,9,0},{11,9,0},{3,9,2}, {1,3,5}, {0,1,11}}
Вы должны прочитать [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve). Лучше, если вы представите пример, который можно запустить сам по себе. Без этого трудно понять вашу проблему. –