How to split an array into evenly sized chunks in C++

1 Answer

0 votes
#include <iostream>
#include <vector>

std::vector<std::vector<int>> splitVectorIntoChunks(const std::vector<int>& vec, int chunkSize) {
    std::vector<std::vector<int>> chunks;
    int vecSize = vec.size();
    
    for (int i = 0; i < vecSize; i += chunkSize) {
        std::vector<int> chunk;
        for (int j = i; j < i + chunkSize && j < vecSize; ++j) {
            chunk.push_back(vec[j]);
        }
        chunks.push_back(chunk);
    }
    
    return chunks;
}

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    int chunkSize = 3;
    
    std::vector<std::vector<int>> chunks = splitVectorIntoChunks(vec, chunkSize);
    
    for (const auto& chunk : chunks) {
        for (int num : chunk) {
            std::cout << num << " ";
        }
        std::cout << std::endl;
    }
}

 
 
/*
 
1 2 3 
4 5 6 
7 8 9 
 
*/
 

 



answered Jan 5, 2025 by avibootz

Related questions

1 answer 123 views
2 answers 165 views
1 answer 127 views
1 answer 134 views
1 answer 132 views
1 answer 119 views
1 answer 126 views
...