C++头文件predefined_ops.h报错

源码如下:

#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的值也一样。

有解答了吗楼主,碰到了同样的报错