生成一个vector <string> Vec 对象,我该如何将该对象传给一个函数(值传递),请问我该怎么定义形参?
回答:
以 vector<int> vec; 为例说明。有多种函数声明方式:
1. void deal( vector<int> vec );
2. void deal( vector<int>* pvec );
3. void deal( const vector<int>* pvec ); // 在函数内不能改变 pvec 指向的对象
4. void deal( vector<int>& vec );
5. void deal( const vector<int>& vec ); // 在函数内不能改变 vec 对象
其对应的调用分别是:
1. deal( vec );
2. deal( &vec );
3. deal( &vec );
4. deal( vec );
5. deal( vec );
补充:
3. void deal( const vector<int>* pvec ); //调用时不会调用拷贝构造函数
5. void deal( const vector<int>& vec ); // 在函数调用时调用了vector的拷贝构造函数
联系客服