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 114 views
2 answers 151 views
1 answer 118 views
1 answer 123 views
1 answer 122 views
1 answer 110 views
1 answer 117 views
...