Initialize a Vector to Zeros C++/C++11

Initialize a Vector to Zeros C++/C++11

I know in C++11 they added the feature to initialize a variable to zero as such

double number = {}; // number = 0
int data{};  // data = 0

Is there a similar way to initialize a std::vector of a fixed length to all zero's?

3

4 Answers

You don't need initialization lists for that:

std::vector<int> vector1(length, 0);
std::vector<double> vector2(length, 0.0);
6

Initializing a vector having struct, class or Union can be done this way

std::vector<SomeStruct> someStructVect(length);
memset(someStructVect.data(), 0, sizeof(SomeStruct)*length);
2

With recent versions of c++ you can go with std::fill.

I noticed someone mentioned it as comment. But should be an answer and encourage to use standard library algorithms which are mentioned by experts, very well tested and proven.

    std::vector<int> vecOfInts;
    vecOfInts.resize(10);

    std::fill(vecOfInts.begin(), vecOfInts.end(), 0);

    for (auto const& intVal : vecOfInts)
    {
        std::cout << intVal << " ";
    }
3

For c++: Let's say that the vector has a maximum of 100 int elements. You can initialize it this way:

int vector[100]={0};

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Robert Thorne
Author

Robert Thorne

Robert Thorne covers electric vehicle innovations, autonomous driving systems, global mobility trends, and automotive engineering developments.