我想知道如果在向量的最后一个元素上使用iterator并执行do会发生什么pop_back。
std::set<int> s;
s.insert(5);
std::vector<int> v = {1, 2, 3, 4, 5};
for (auto it = v.begin(); it != v.end();) {
if (s.count(*it)) {
std::swap(*it, v.back());
v.pop_back();
} else {
++it;
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常(v是{1, 2, 3, 4}该块后)至少铿锵,但是它正确检查it == v.end()是否it无效?
考虑这样的div:
<div id="someid"></div>
Run Code Online (Sandbox Code Playgroud)
它的风格:
#someid {
transition: background-color 10s ease;
background-color: #FF0000;
height: 100px;
width: 100px;
}
#someid:hover {
background-color: #FFFFFF;
}
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我希望有可能#someid通过 JS 和/或结束动画检测状态(当前是否正在设置动画)。我从这个答案中尝试过一件事:
document.querySelector("#someid").style.transition = "none";
Run Code Online (Sandbox Code Playgroud)
但它不适用于当前的动画元素。
关键是我需要检测元素现在是否正在动画,如果是,请等待动画结束或立即结束,否则什么都不做
我已经找到了 transitionend事件,但是使用它我无法检测元素目前是否正在动画。