源码如下:
#include
#include
#include
#include
#include
//#define random(x) rand()%(x)
using namespace std;
vector< vector<int> > used(5, vector<int>(2));
vector< vector<int> > first(4, vector<int>(3)), second(4, vector<int>(3)), third(4, vector<int>(3));
vector< vector<int> > fourth(4, vector<int>(3)), fifth(4, vector<int>(3));
string players[4];
string colors[5] = {"红桃", "黑桃", "方块", "梅花"};
string nums[14] = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
int c, m;
void deal()
{
srand((int)time(0));
c = rand() % 4;
srand((int)time(0));
m = rand() % 13;
vector< vector<int> > key(1, vector<int>(2));
key[0][0] = c;
key[0][1] = m;
while (std::find(used.begin(), used.end(), key) != used.end())
{
srand((int)time(0));
c = rand() % 4;
srand((int)time(0));
m = rand() % 13;
key[0][0] = c;
key[0][1] = m;
}
used.push_back(key[0]);
}
int main()
{
int k;
players[0] = "公牌";
cout << "第几大的赢?";
cin >> k;
for (int i = 0; i < 5; i++)
{
deal();
if (i != 0)
{
string p;
cout << "第" << i << "个玩家是谁?";
cin >> p;
players[i - 1] = p;
}
cout << players[i] << ":" << colors[c] << nums[m] << endl;
}
}
编译后弹出了predefined_ops.h文件,在191行报错:
{ return *__it == _M_value; }
报错提示:
191 17 D:\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\bits\predefined_ops.h
[Error] no match for 'operator==' (operand types are 'std::vector' and 'const std::vector >' )
while (std::find(used.begin(), used.end(), key[0]) != used.end())
srand((int)time(0)); 只保留一个就可以了,运行速度快,多次time获取的时间可能一样,会导致rand的值也一样。
有解答了吗楼主,碰到了同样的报错