How to check if a given vector is a sparse vector in C++

1 Answer

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

/*
    Determines whether a sequence is sparse.
    Sparse means: more zero elements than non‑zero elements.
*/
bool is_sparse(const std::vector<int>& values) {
    // Count how many elements are zero using std::count
    std::size_t zero_count = std::count(values.begin(), values.end(), 0);

    // Compare zero vs non‑zero directly
    return zero_count > (values.size() - zero_count);
}

int main() {
    std::vector<int> data {0, 4, 0, 1, 0, 0, 0, 3, 0};

    if (is_sparse(data))
        std::cout << "Sparse array\n";
    else
        std::cout << "Not a sparse array\n";
}


/*
run:

Sparse array

*/

 



answered Aug 14 by avibootz
...