C++のvectorを引数にする関数の引数に、vectorを返り値にする関数を書くとエラーが起きるのは何故ですか?(解決しますか?)
main()の中身を見るとわかる通り、vector<int> A = f();でいったん代入すると、正常にprint関数が動きます。
エラーは下記のとおりですが、恥ずかしながら調べても意味がわかりませんでした。
C++
1//{1,2,3}のvector<int>を返す関数 2vector<int> f() { 3 vector<int> A = {1,2,3}; 4 return A; 5} 6 7//vector<int>の中身を表示する関数 8void print(vector<int>& A) { 9 for (int i = 0; i < A.size(); i++) 10 { 11 cout << A[i]; 12 if (A.size() == i + 1) { 13 cout << endl; 14 } 15 else { 16 cout << " "; 17 } 18 } 19} 20 21int main() { 22 vector<int> A = f(); 23 print(A); //1 2 3 24 print(f()); //error 25} 26 27
エラー:
C2664 'void print(std::vector<int,std::allocator<_Ty>> &)': 引数 1 を 'std::vector<int,std::allocator<_Ty>>' から 'std::vector<int,std::allocator<_Ty>> &' へ変換できません。
回答1件
あなたの回答
tips
プレビュー