این کدی که نوشتید کلا اشتباهه حتی اگر به جای row از decltype استفاده کنین
به محض این که الان بخواین از این وکتور استفاده کنین ارور میده !
class C_ostanha{
private:
int row=6, column=5;
vector < vector <string> > ostan(int, vector <string> (column));
public:
void setOstan()
{
cout<<ostan.size();
}
};
یعنی بدون استفاده کردن مشکلی نداره دلیلشم اینه که template , تا وقتی که لازم نباشه شی ازش ساخته نمیشه ! ولی به محض ساختن شی ارور میده چون constructor ای که استفاده کردین رو نمیشناسه ! (ما constructor که type ,value بگیره نداریم اصلا )
اگر کد بالا رو برای این نوشتید که وکتورتون بر اساس row و col ریسایز بشه
کد درسته ولی به شرط این که وکتور به عنوان عضو کلاس تعریف نشده باشه و خارج از کلاس باشین !
یعنی
int main()
{
int row=5,col=6;
vector < vector <string> > ostan(row, vector <string> (col) );
}
کد بالا 5 تا وکتور که با سایز 6 هستن رو میزاره داخل ostan
برای این که سوالی که پرسیدین درست کار کنه به این شکل عمل کنین :
class C_ostanha{
private:
int row, column;
vector < vector <string> > ostan;
public:
void setOstan()
{
cout<<ostan.size();
}
C_ostanha():
row(6),
column(3),
ostan(row,vector<string>(column))
{}
};