동일한 양의 요소가있는 벡터가 있어야합니다. 조건에 따라 첫 번째 벡터의 요소를 제거하고 싶지만 같은 위치에있는 요소를 두 번째 벡터에서 제거하고 싶습니다.첫 번째 벡터의 요소를 기준으로 두 개의 std :: vectors에서 요소를 제거하십시오.
std::vector<std::string> first = {"one", "two", "one", "three"}
std::vector<double> second = {15.18, 14.2, 2.3, 153.3}
그리고 내가 원하는 것은 요소가 "하나"인 경우 조건에 따라 제거하는 것입니다 :
는 예를 들어, 다음 두 벡터이다.
std::vector<std::string> first = {"two", "three"}
std::vector<double> second = {14.2, 153.3}
내가 사용하여 first
에서 요소를 제거 할 수 있습니다 :
bool pred(std::string name) {
return name == "one";
}
void main() {
std::vector<std::string> first = {"one", "two", "one", "three"}
first.erase(first.begin(), first.end(), pred);
}
그러나 나는뿐만 아니라 두 번째 벡터에서 요소를 제거 할 수있는 방법을 인식하지 오전 최종 결과입니다.
두 벡터에 대해 하나의 색인을 사용해야하는 색인 생성에 'for' 루프를 사용할 수 있습니다. 이렇게하면 같은 인덱스에있는 두 벡터를 모두 지울 수 있습니다. –
이렇게하는 한 가지 방법은 Boost의 zip 반복자를 사용하는 것입니다. - 또는 http://stackoverflow.com/a/26659114/241631 – Praetorian