diff --git a/cpp/src/arrow/compute/kernels/vector_sort.cc b/cpp/src/arrow/compute/kernels/vector_sort.cc index 4a12a04aeef7..3ff888570710 100644 --- a/cpp/src/arrow/compute/kernels/vector_sort.cc +++ b/cpp/src/arrow/compute/kernels/vector_sort.cc @@ -231,19 +231,19 @@ void VisitConstantRanges(const ArrayType& array, std::span indices, if (indices.empty()) { return; } - auto range_start = indices.begin(); - auto range_cur = range_start; - auto last_value = GetView::LogicalValue(array.GetView(*range_cur - offset)); - while (++range_cur != indices.end()) { - auto v = GetView::LogicalValue(array.GetView(*range_cur - offset)); + size_t range_start = 0; + size_t range_cur = 0; + auto last_value = GetView::LogicalValue(array.GetView(indices[range_cur] - offset)); + while (++range_cur != indices.size()) { + auto v = GetView::LogicalValue(array.GetView(indices[range_cur] - offset)); if (v != last_value) { - visit({range_start, range_cur}); + visit(indices.subspan(range_start, range_cur - range_start)); range_start = range_cur; last_value = v; } } if (range_start != range_cur) { - visit({range_start, range_cur}); + visit(indices.subspan(range_start, range_cur - range_start)); } } diff --git a/cpp/src/parquet/arrow/reader.cc b/cpp/src/parquet/arrow/reader.cc index 9212f0abb6ce..d6fe369301b7 100644 --- a/cpp/src/parquet/arrow/reader.cc +++ b/cpp/src/parquet/arrow/reader.cc @@ -732,12 +732,12 @@ class PARQUET_NO_EXPORT FixedSizeListReader : public ListReader { const int32_t expected_size = has_elements ? list_size : 0; std::span run_offsets(offsets + start, static_cast(length + 1)); - const auto first_invalid_offset = std::ranges::adjacent_find( - run_offsets, + const auto first_invalid_offset = std::adjacent_find( + run_offsets.begin(), run_offsets.end(), [&](int32_t left, int32_t right) { return right - left != expected_size; }); if (first_invalid_offset != run_offsets.end()) { const int64_t x = - start + std::ranges::distance(run_offsets.begin(), first_invalid_offset); + start + std::distance(run_offsets.begin(), first_invalid_offset); const int32_t size = offsets[x + 1] - offsets[x]; if (has_elements) { return Status::Invalid("Expected all lists to be of size=", list_size,