我写了一个基于std::vector<std::vector<T> >
的容器。现在我希望有一个迭代器,所以我可以按照我std::vector
的方式逐行处理它。什么是最短的std(这次没有提升)方法来实现这个目标?
编辑:
实际上,std::vector<std::vector<T> >
并不完全是我所拥有的。我的代码看起来与此类似:
struct Soldier { std::string name;};
class Platoon {
public: Soldier* commander;
std::vector<Soldier> soldiers;
};
class Company {
public: Soldier* commander;
std::vector<Platoon> platoons;
};
class Batalion {
public: Soldier* commander;
std::vector<Company> companies;
};
我总共有五级等级,包括士兵。我希望这些类中的每一个都有begin()和end()方法,允许对士兵进行迭代,例如为了:
std::for_each(bravo_company.begin(), bravo_company.end(),
front_line());