Предположим, у меня есть Container
.
template<typename Type>
class Container
{
public:
Container(int size_)
{
size=size_;
data = new Type[size];
}
~Container()
{
delete [] data;
}
private:
int size;
Type* data;
};
Я хочу, чтобы что-то сразу заполнило данные в контейнер, как это
Container<int> container(3);
container << 100,200,300;
или
Container<int> container(3);
container.fill({100,200,300});
или
Container<int> container{100,200,300};
после этого, data[0]=100
, data[1]=200
, data[2]=300
Я НЕ хочу вводить какую-либо временную переменную
// I do not like this...
int data[]={1,2,3};
Container<int> container(3);
container.fill(data,data+3);
Как можно Я реализую это в C ++ 03?
Спасибо за ваше время.
Приложение A:
Что-то похожее - это Eigen
'comma-initializer
RowVectorXd vec1(3);
vec1 << 1, 2, 3;
Приложение B:
Я знаю, что легко использовать C ++ 11 std :: initializer_list для реализации чего-то вроде
Container<int> container{100,200,300};