关于这段程序中的代码的含义?请教调用的是那个构造函数

关于这段程序中的代码的含义??请问调用的是那个构造函数?
#include "D:\C++WORK\main.h"

class iStack
{
public: 
iStack(int capacity):stack(capacity),top(0){}
public:
int top;
vector<int>  stack;
};

class iStack1
{
public: 
iStack1(int capacity):stack1(capacity),top(0){}
public:
int top;

vector<int>  stack1;/*【】【】问题在这里【】【】*/
};

int main()
{
iStack *ps=new iStack(20);

vector<int>::iterator iter =(*ps).stack.begin();

for (;iter!=(*ps).stack.end();++iter)
{
cout<<*iter<<" ";
}

return 0;
}


问题就是  使用成员初始化列表对iStack这个类进行成员初始化的时候,用capacity对stack这个vector<int>  类型的对象进行初始化,这个应该是一个错误啊 ,但是为什么程序能够运行起来???

stack明显是一个vector<int>  类型的对象啊 ???   可是capacity是一个int类型的数值,那么如何使用一个int类型的数值对一个

vector<int> 类型的stack进行初始化  ?????如果是调用了构造函数   应该写  vector<int>   stack();啊 !!!

------解决思路----------------------
explicit vector (size_type n, const value_type& val = value_type(),
                 const allocator_type& alloc = allocator_type());


n
Initial container size (i.e., the number of elements in the container at construction).
Member type size_type is an unsigned integral type.