The following code initializes 1 and 2 dimensional std::vector with its size and initial value. The output should be
declare 1 dimensional vector of size 4 with initial value 3 generated vector is size 4 vector: vec[0] = 3 vec[1] = 3 vec[2] = 3 vec[3] = 3 declare 2 dimensional vector of size 3x4 with initial value 2 generated vector with method 1 is size 3x4 vector: vec[0][0] = 2 vec[0][1] = 2 vec[0][2] = 2 vec[0][3] = 2 vec[1][0] = 2 vec[1][1] = 2 vec[1][2] = 2 vec[1][3] = 2 vec[2][0] = 2 vec[2][1] = 2 vec[2][2] = 2 vec[2][3] = 2 generated vector with method 2 is size 3x4 vector: vec[0][0] = 2 vec[0][1] = 2 vec[0][2] = 2 vec[0][3] = 2 vec[1][0] = 2 vec[1][1] = 2 vec[1][2] = 2 vec[1][3] = 2 vec[2][0] = 2 vec[2][1] = 2 vec[2][2] = 2 vec[2][3] = 2
[code lang="cpp"] // STL
include <vector>
include <iostream>
//! initializes a 1 dimensional vector with its size and initial value. template <typename ValueType> void initVector1D( const int size, const ValueType value = (ValueType)0.0 ) { std::cout << "declare 1 dimensional vector of size " << size << " with initial value " << value << std::endl; std::vector<ValueType> vec(size, value); std::cout << "generated vector is size " << vec.size() << " vector: " << std::endl; for(int n = 0; n < vec.size(); ++n) { std::cout << " vec[" << n << "] = " << vec[n] << std::endl; } }
//! initializes a 2 dimensional vector with its size and initial value. template <typename ValueType> void initVector2D( const int size1, const int size2, const ValueType value = (ValueType)0.0 ) { std::cout << "declare 2 dimensional vector of size " << size1 << "x" << size2 << " with initial value " << value << std::endl; { std::vector< std::vector<ValueType> > vec(size1, std::vector<ValueType>(size2, value)); std::cout << "generated vector with method 1 is size " << vec.size() << "x" << vec[0].size() << " vector: " << std::endl; for(int n = 0; n < vec.size(); ++n) { for(int m = 0; m < vec[n].size(); ++m) { std::cout << " vec[" << n << "][" << m << "] = " << vec[n][m] << std::endl; } } } { std::vector<ValueType> vecTmp(size2, value); std::vector< std::vector<ValueType> > vec(size1, vecTmp); std::cout << "generated vector with method 2 is size " << vec.size() << "x" << vec[0].size() << " vector: " << std::endl; for(int n = 0; n < vec.size(); ++n) { for(int m = 0; m < vec[n].size(); ++m) { std::cout << " vec[" << n << "][" << m << "] = " << vec[n][m] << std::endl; } } } }
int main() { initVector1D(4,3.0f); initVector2D(3,4,2);
return 0; } [/code]