此前曾就这一问题提出了几个问题;我的谅解是,打电话<代码>std:vector:erase将只会使处于<<> >以下/em>地位的变压器失效。 然而,在删除一个要素之后,该职位上的主持人是否仍然有效(当然,条件是该职位在删除后没有点到<代码>end()?
我对如何实施病媒的理解似乎表明,病媒是不可阻挡的,但我并不完全相信它可能导致不明确的行为。
作为我所谈论的事例,以下守则从病媒中排除了所有奇迹。 该法典是否造成不明确的行为?
typedef std::vector<int> vectype;
vectype vec;
for (int i = 0; i < 100; ++i) vec.push_back(i);
vectype::iterator it = vec.begin();
while (it != vec.end()) {
if (*it % 2 == 1) vec.erase(it);
else ++it;
}
这部法典对我的机器实行罚款,但令我相信它有效。