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

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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

You Might Also Like