E0312,C2664尝试将向量对象作为函数参数传递时错误
E0312, C2664 Error When Trying to Pass a Vector Object as a Function Parameter
我目前正在开展学校项目。我要创建的代码是银行帐户系统。要访问不同的成员,我正在让用户输入其成员ID,该成员ID作为参数之一传递到一个称为findMember
的函数。
这是功能:
int findMember(vector<Member> patron, int memID)
{
int vectorSize;
vectorSize = patron.size();
for (int index = 0; index < vectorSize; index++)
{
if (memID == patron[index].getMemberID())
return index;
}
}
这是向量:
vector<Member*> patron; // Vector to store the members.
这是函数调用:
int acctID, memberIndex;
cout << "Enter your Account ID: ";
cin >> acctID;
memberIndex = findMember(patron, acctID); // Helps find the index if the current stored member.
patron[memberIndex]->menu(); // Opens the current members
storage location.
错误代码是这些:
Error (active) E0312 no suitable user-defined conversion from "std::vector<Member *, std::allocator<Member *>>" to "std::vector<Member, std::allocator<Member>>" exists
Error C2664 'int findMember(std::vector<Member,std::allocator<_Ty>>,int)': cannot convert argument 1 from 'std::vector<Member *,std::allocator<_Ty>>' to 'std::vector<Member,std::allocator<_Ty>>'
我已经在网络上浏览了E0312,没有运气找到了它被扔掉的原因。C2664的结果相同。我的代码在哪里出错?
另外,谢谢。
感谢 @2785528的响应。
我与通过vector<Member*>
的方式不一致。一旦解决了该错误,就需要完成的只是将patron[index].getMemberID()
更改为patron[index]->getMemberID()
。
相关文章:
- 如何在C++中将迭代器作为函数参数传递
- 为什么我不能将引用作为 std::async 的函数参数传递
- 节点插件 API 将数组作为函数参数传递
- 将字符串数组作为函数参数传递
- 如何通过 C++ 中的函数参数传递初始值设定项列表的固定大小的初始值设定项列表?
- 我可以动态创建新地图并作为函数参数传递吗?
- 将任意模板向量作为函数参数C++传递
- 将函数指针作为函数参数传递的目的
- C++:通过函数参数传递的值给出不同的结果
- 当数组大小在C++中未知时,如何在运行时将对字符串数组的引用作为函数参数传递?
- 通过宏将函数参数传递给函数
- C++:访问作为函数参数传递的双指针数组所指向的变量的值
- 如何将 std::string 作为构造函数参数传递,并将其保存的 C 字符串存储在 void 指针中?
- 将派生类构造函数参数传递给受保护的成员
- 将指向数组的指针作为函数参数传递,这本身就是另一个函数的返回值?
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 有什么理由C++ 11+ std::mutex 应该声明为全局变量,而不是作为函数参数传递到 std::thread 中
- 如何将派生类作为函数参数传递:如果派生类成员不在父类中怎么办
- 如何将变量作为构造函数参数或函数参数传递
- 当数组对象以函数参数传递时,为什么复制构造函数会自称