c++ - c++ 中具有类和向量变量的函数
问题描述
我有一个名为 Party 的类,其中包含一个名为 player 的私有变量,它是向量类型,sting。
class Party
{
vector <string> players;
public:
Party (string party_name, string boss) {};
~Party() {};
vector<string> getNames() { return players; };
void setNames (const vector<string> &new_players) { players=new_players; }
}
我想编写一个朋友函数,它将显示变量 P(以及具有“名称”变量为私有的类)是否是党的一方。
void part_of_party (Party &party, P name)
{
bool found=false;
for (int i=0; ( found==false && i<party.name.size() ); ++i)
{
if ( (party.name[i]).compare(name.getName()) == 0)
{
found==true;
};
}
if (found==true) { /// }
else { //// }
}
编译器没有显示任何错误,但屏幕上没有显示任何消息(如预期的那样)。
你有什么主意吗?谢谢你。
解决方案
我猜问题是这个
found==true;
应该是
found=true;
通常新手会反过来弄错,=
他们应该在应该使用的时候使用==
,但是==
当你应该使用=
(分配)时你已经使用了(平等)。你的编译器应该已经警告你了。注意编译器警告,它将为您节省大量时间和挫败感。
另外,不是错误,而是
if (party.name[i] == name.getName())
是一种更明显的写法
if ( (party.name[i]).compare(name.getName()) == 0)
推荐阅读
- php - laravel 重定向到页面的某些部分
- r - R - kableExtra - 无法在包含字符串的单元格中插入 html 格式的换行符
- java - spring方法验证中如何验证方法参数默认为NotNull?
- javascript - 如何使用 jquery 在单击时更改锚标记的文本?
- php - 将整数值除以 for 方法并显示开始和结束限制
- ios - ios输入边框缺少焦点
- openstack - 启用 Ceph 后无法创建临时实例
- encryption - 对这个加密谜题有什么建议吗?
- javascript - 如何在删除节点之前检查节点是否有 childNode?
- java - 重命名某个项目时出现“Maven Java EE 配置问题”