Lo primero que tenemos que hacer es crear la plantilla que se va a utilizar para inicializar los vectores:
template <typename T>
class init_vector {
public:
init_vector<T>& operator<< (const T& value) {
internal_vector.push_back(value);
return *this;
}
operator std::vector<T>() const {
return internal_vector;
}
private:
std::vector<T> internal_vector;
};
A la hora de inicializar un vector podemos utilizar esta plantilla de manera muy sencilla y elegante:
std::vector<int> v = init_vector<int>() << 0 << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9;
std::vector<string> empresas = init_vector<string>() << "Google" << "Microsoft" << "Apple" << "Nokia";
template <typename T>
class init_vector {
public:
init_vector<T>& operator<< (const T& value) {
internal_vector.push_back(value);
return *this;
}
operator std::vector<T>() const {
return internal_vector;
}
private:
std::vector<T> internal_vector;
};
A la hora de inicializar un vector podemos utilizar esta plantilla de manera muy sencilla y elegante:
std::vector<int> v = init_vector<int>() << 0 << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9;
std::vector<string> empresas = init_vector<string>() << "Google" << "Microsoft" << "Apple" << "Nokia";
Comentarios
Publicar un comentario