24bool is_jagged(
const std::vector<std::vector<T>>& data) {
27 const size_t expected_size = data[0].size();
28 return std::any_of(data.begin(), data.end(),
29 [expected_size](
const auto& row) { return row.size() != expected_size; });
34bool is_jagged_3d(
const std::vector<std::vector<std::vector<T>>>& data) {
39 const size_t first_size = data[0].size();
40 if (std::any_of(data.begin(), data.end(),
41 [first_size](
const auto& matrix) { return matrix.size() != first_size; })) {
46 const size_t second_size = data[0][0].size();
47 return std::any_of(data.begin(), data.end(), [second_size](
const auto& matrix) {
48 return std::any_of(matrix.begin(), matrix.end(),
49 [second_size](const auto& row) { return row.size() != second_size; });