Skip to content
Snippets Groups Projects
Commit f6b6a462 authored by Tom Fischer's avatar Tom Fischer Committed by 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 ...@@ -29,35 +29,37 @@ namespace BaseLib
/// do not have to be copied /// do not have to be copied
/// @return vector that contains the copied objects /// @return vector that contains the copied objects
template <typename T> 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<std::size_t> const& exclude_positions)
{ {
std::vector<T> dest_vec; std::vector<T> dest_vec;
if (exclude_positions.empty()) { if (exclude_positions.empty())
{
dest_vec = src_vec; dest_vec = src_vec;
return dest_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)); std::copy_n(src_vec.cbegin(), exclude_positions[0],
for (std::size_t i=1; i<exclude_positions.size(); ++i) { std::back_inserter(dest_vec));
std::copy_n( for (std::size_t i = 1; i < exclude_positions.size(); ++i)
src_vec.cbegin()+exclude_positions[i-1]+1, {
exclude_positions[i]-(exclude_positions[i-1]+1), std::copy_n(src_vec.cbegin() + exclude_positions[i - 1] + 1,
std::back_inserter(dest_vec) exclude_positions[i] - (exclude_positions[i - 1] + 1),
); std::back_inserter(dest_vec));
} }
std::copy(src_vec.cbegin()+exclude_positions.back()+1, std::copy(src_vec.cbegin() + exclude_positions.back() + 1, src_vec.cend(),
src_vec.cend(), std::back_inserter(dest_vec)); std::back_inserter(dest_vec));
return dest_vec; return dest_vec;
} }
template <typename T> template <typename T>
void excludeObjectCopy(std::vector<T> const& src_vec, void excludeObjectCopy(std::vector<T> const& src_vec,
std::vector<std::size_t> const& exclude_positions, std::vector<std::size_t> const& exclude_positions,
std::vector<T> & dest_vec) std::vector<T>& dest_vec)
{ {
dest_vec = excludeObjectCopy(src_vec, exclude_positions); 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