std::vector<MeshLib::Element*> excludeElements(const std::vector<MeshLib::Element*> & vec_src_eles, const std::vector<std::size_t> &vec_removed) { std::vector<MeshLib::Element*> vec_dest_eles(vec_src_eles.size() - vec_removed.size()); std::size_t k=0; for (std::size_t i=0; i<vec_src_eles.size(); i++) { if (std::find(vec_removed.begin(), vec_removed.end(), i) == vec_removed.end()) { vec_dest_eles[k] = vec_src_eles[i]; k++; } } return vec_dest_eles; }
std::vector<MeshLib::Element*> excludeElementCopy( std::vector<MeshLib::Element*> const& vec_src_eles, std::vector<std::size_t> const& vec_removed) { std::vector<MeshLib::Element*> vec_dest_eles(vec_src_eles.size()-vec_removed.size()); unsigned cnt (0); for (std::size_t i=0; i<vec_removed[0]; ++i) vec_dest_eles[cnt++] = vec_src_eles[i]; for (std::size_t i=1; i<vec_removed.size(); ++i) for (std::size_t j=vec_removed[i-1]+1; j<vec_removed[i]; ++j) vec_dest_eles[cnt++] = vec_src_eles[j]; for (std::size_t i=vec_removed.back()+1; i<vec_src_eles.size(); ++i) vec_dest_eles[cnt++] = vec_src_eles[i]; return vec_dest_eles; }