| 62 | |
| 63 | template <typename T> |
| 64 | std::vector<T> ReplaceVectorElement(const std::vector<T>& values, size_t index, |
| 65 | T new_element) { |
| 66 | ARROW_DCHECK_LE(index, values.size()); |
| 67 | std::vector<T> out; |
| 68 | out.reserve(values.size()); |
| 69 | for (size_t i = 0; i < index; ++i) { |
| 70 | out.push_back(values[i]); |
| 71 | } |
| 72 | out.emplace_back(std::move(new_element)); |
| 73 | for (size_t i = index + 1; i < values.size(); ++i) { |
| 74 | out.push_back(values[i]); |
| 75 | } |
| 76 | return out; |
| 77 | } |
| 78 | |
| 79 | template <typename T, typename Predicate> |
| 80 | std::vector<T> FilterVector(std::vector<T> values, Predicate&& predicate) { |