我遇到了由抢七局引起的上述错误
#include <vector>
#include <iostream>
#include <algorithm>
class Hand{
private:
std::vector<Card> cards;
public:
PokerHand(Card c1, Card c2) {
cards.push_back(c1);
cards.push_back(c2);
cards.push_back(c3);
cards.push_back(c4);
cards.push_back(c5);
}
bool breakTie(const PokerHand& other) const{
std::vector<Card> temp1 = { cards };
std::vector<Card> temp2 = { other.getCards()};
return std::find(temp1.begin(), temp1.end(), 2) < std::find(temp2.begin(), temp2.end(), 2)
}
std::vector<Card> getCards(){
return cards;
}
};
class Card{
private:
int value;
public:
bool operator ==(const Card& right)const {
return (this->value == right.getValue());
}
int getValue(){
return value;
}
Card(int value){
this->value=value;
}
};
int main(){
Card a(4);
Card b(5);
Hand hand(a,b);
hand.breakTie();
return 0;
}
据我了解,该错误表示我正在尝试更改const变量。我不明白的是我如何更改const变量?
非常感谢您的帮助。
答案 0 :(得分:1)
您正在find
的矢量Card
上用整数2
调用2
。由于Card
不是Card
,也没有得到explicit
的构造函数,该构造函数采用一个可以使用的整数参数(要么没有,要么没有存在标记为Card
)。
您需要(向编译器)说明您要寻找的内容。什么是private void AddProductsTabbedPanel()
{
string queryString = @"SELECT VALUE P FROM Tblproducts as P";
foreach (TabPage tp in tabControl1.TabPages)
{
ObjectContext context = ((IObjectContextAdapter)cse).ObjectContext;
ObjectQuery<TblProduct> filteredproduct = new ObjectQuery<TblProduct>(queryString, context);
foreach (TblProduct tprod in filteredproduct)
{
Button b = new Button();
b.Text = tprod.Description;
tp.Controls.Add(b);
}
}
}
2?