ネタ元 → List<>での検索Remove
与えた条件を満たす要素を List<Hoge> から取り除け、と。
STL/CLRだとこんなとこかしら:
using namespace System;
ref class Hoge {
private:
int value_;
public:
Hoge(int v) : value_(v) {}
void update() { ++value_; }
property bool is_even {
bool get() { return value_ % 2 == 0; }
}
virtual String^ ToString() override { return value_.ToString(); }
};
bool update_and_validate(Hoge^ h) {
h->update();
return h->is_even;
}
#include <cliext/vector>
#include <cliext/algorithm>
using namespace cliext;
int main() {
vector<Hoge^> objs;
for ( int i = 0; i < 10; ++i ) objs.push_back(gcnew Hoge(i));
objs.erase(remove_if(objs.begin(), objs.end(), update_and_validate),
objs.end());
for each ( Hoge^ obj in objs ) Console::WriteLine(obj);
}
# 匿名delegateかlambdaがほしいよぉ