Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
chunk_processing::Chunk< T >::JaggedVectorHandler< U > Class Template Reference

Static Public Member Functions

static std::vector< std::vector< U > > normalize (const std::vector< std::vector< U > > &jagged)
 
static std::vector< std::vector< std::vector< U > > > normalize_3d (const std::vector< std::vector< std::vector< U > > > &jagged_3d)
 

Detailed Description

template<typename T>
template<typename U>
class chunk_processing::Chunk< T >::JaggedVectorHandler< U >

Definition at line 24 of file chunk.hpp.

Member Function Documentation

◆ normalize()

template<typename T >
template<typename U >
static std::vector< std::vector< U > > chunk_processing::Chunk< T >::JaggedVectorHandler< U >::normalize ( const std::vector< std::vector< U > > &  jagged)
inlinestatic

Definition at line 26 of file chunk.hpp.

26 {
27 if (jagged.empty())
28 return {};
29
30 // Find maximum size
31 size_t max_size = 0;
32 for (const auto& row : jagged) {
33 max_size = std::max(max_size, row.size());
34 }
35
36 // Normalize by padding with default values
37 std::vector<std::vector<U>> normalized;
38 normalized.reserve(jagged.size());
39
40 for (const auto& row : jagged) {
41 std::vector<U> normalized_row = row;
42 normalized_row.resize(max_size, U{}); // Pad with default values
43 normalized.push_back(std::move(normalized_row));
44 }
45
46 return normalized;
47 }

◆ normalize_3d()

template<typename T >
template<typename U >
static std::vector< std::vector< std::vector< U > > > chunk_processing::Chunk< T >::JaggedVectorHandler< U >::normalize_3d ( const std::vector< std::vector< std::vector< U > > > &  jagged_3d)
inlinestatic

Definition at line 50 of file chunk.hpp.

50 {
51 if (jagged_3d.empty())
52 return {};
53
54 // Find maximum sizes
55 size_t max_rows = 0, max_cols = 0;
56 for (const auto& matrix : jagged_3d) {
57 max_rows = std::max(max_rows, matrix.size());
58 for (const auto& row : matrix) {
59 max_cols = std::max(max_cols, row.size());
60 }
61 }
62
63 // Normalize by padding
64 std::vector<std::vector<std::vector<U>>> normalized;
65 normalized.reserve(jagged_3d.size());
66
67 for (const auto& matrix : jagged_3d) {
68 std::vector<std::vector<U>> norm_matrix;
69 norm_matrix.reserve(max_rows);
70
71 for (const auto& row : matrix) {
72 std::vector<U> norm_row = row;
73 norm_row.resize(max_cols, U{});
74 norm_matrix.push_back(std::move(norm_row));
75 }
76
77 while (norm_matrix.size() < max_rows) {
78 norm_matrix.push_back(std::vector<U>(max_cols));
79 }
80
81 normalized.push_back(std::move(norm_matrix));
82 }
83
84 return normalized;
85 }

The documentation for this class was generated from the following file: