Skip to content
Snippets Groups Projects
Commit f6b6a462 authored by Tom Fischer's avatar Tom Fischer
Browse files

[BL/Algorithm] Clang format excludeObjectCopy.

parent b62550bb
No related branches found
No related tags found
No related merge requests found
......@@ -29,35 +29,37 @@ namespace BaseLib
/// do not have to be copied
/// @return vector that contains the copied objects
template <typename T>
std::vector<T> excludeObjectCopy(std::vector<T> const& src_vec,
std::vector<T> excludeObjectCopy(
std::vector<T> const& src_vec,
std::vector<std::size_t> const& exclude_positions)
{
std::vector<T> dest_vec;
if (exclude_positions.empty()) {
if (exclude_positions.empty())
{
dest_vec = src_vec;
return dest_vec;
}
assert (exclude_positions.back() < src_vec.size());
assert(exclude_positions.back() < src_vec.size());
std::copy_n(src_vec.cbegin(), exclude_positions[0], std::back_inserter(dest_vec));
for (std::size_t i=1; i<exclude_positions.size(); ++i) {
std::copy_n(
src_vec.cbegin()+exclude_positions[i-1]+1,
exclude_positions[i]-(exclude_positions[i-1]+1),
std::back_inserter(dest_vec)
);
std::copy_n(src_vec.cbegin(), exclude_positions[0],
std::back_inserter(dest_vec));
for (std::size_t i = 1; i < exclude_positions.size(); ++i)
{
std::copy_n(src_vec.cbegin() + exclude_positions[i - 1] + 1,
exclude_positions[i] - (exclude_positions[i - 1] + 1),
std::back_inserter(dest_vec));
}
std::copy(src_vec.cbegin()+exclude_positions.back()+1,
src_vec.cend(), std::back_inserter(dest_vec));
std::copy(src_vec.cbegin() + exclude_positions.back() + 1, src_vec.cend(),
std::back_inserter(dest_vec));
return dest_vec;
}
template <typename T>
void excludeObjectCopy(std::vector<T> const& src_vec,
std::vector<std::size_t> const& exclude_positions,
std::vector<T> & dest_vec)
std::vector<std::size_t> const& exclude_positions,
std::vector<T>& dest_vec)
{
dest_vec = excludeObjectCopy(src_vec, exclude_positions);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment