c++代码哪里错了
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
vector<string> & boys_names()
{
static bool first = true;
static vector<string> hidden;
if (first)
{
first = false;
hidden.push_back("Adam ");
hidden.push_back("Bert ");
hidden.push_back("Chet ");
hidden.push_back("David ");
hidden.push_back("Ethan ");
hidden.push_back("Frank ");
hidden.push_back("George ");
hidden.push_back("Howard ");
hidden.push_back("Irving ");
hidden.push_back("John ");
hidden.push_back("Kenneth");
hidden.push_back("Lincon ");
hidden.push_back("Mike ");
hidden.push_back("Nathan ");
hidden.push_back("Oscar ");
hidden.push_back("Phillip");
hidden.push_back("Quentin");
hidden.push_back("Romeo ");
hidden.push_back("Sam ");
hidden.push_back("Tom ");
hidden.push_back("Uther ");
hidden.push_back("Vince ");
hidden.push_back("Waylon ");
hidden.push_back("Xavier ");
hidden.push_back("Yanzijia ");
hidden.push_back("xing ");
};
return hidden;
};
vector<string> & girls_names()
{
static bool first = true;
static vector<string> hidden;
if (first)
{
first = false;
hidden.push_back("Ava ");
hidden.push_back("Beatrice");
hidden.push_back("Chelsea ");
hidden.push_back("Dayna ");
hidden.push_back("Ethel ");
hidden.push_back("Florence");
hidden.push_back("Georgia ");
hidden.push_back("Hannah ");
hidden.push_back("Irene ");
hidden.push_back("Jane ");
hidden.push_back("Katie ");
hidden.push_back("Lucy ");
hidden.push_back("Mary ");
hidden.push_back("Nancy ");
hidden.push_back("Olivia ");
hidden.push_back("Phillis ");
hidden.push_back("Queenie ");
hidden.push_back("Rachel ");
hidden.push_back("Samantha");
hidden.push_back("Tonya ");
hidden.push_back("Ulna ");
hidden.push_back("Vivica ");
hidden.push_back("Wilma ");
hidden.push_back("Xenia ");
hidden.push_back("xiejunyi ");
hidden.push_back("Zhang ");
};
return hidden;
};
int main()
{
map<pair<int,int>, int> data;
map<int, vector<int> boys_used;
map<int, vector<int> girls_used;
unsigned int count = 0;
while ((data.size() < 78) && (++count < 1000000))
{
bool notgood = true;
int girl = rand() % 26;
int boy = rand() % 26;
pair<int,int> match(boy,girl);
//std::cout << ".";
if ((boys_used[boy].size() < 3)
&& (girls_used[girl].size() < 3)
&& (data.find(match) == data.end()))
{
data[match] = (rand() % 50) + 5;
boys_used[boy].push_back(girl);
girls_used[girl].push_back(boy);
std::cout << "!" << std::endl;
};
};
std::cout << std::endl;
vector<string> & B = boys_names();
vector<string> & G = girls_names();
unsigned int count2 = 0;
for (auto iter = data.begin(); iter != data.end(); ++iter)
{
const pair<int,int> & match = iter->first;
int value = iter->second;
cout << B[match.first] << " " << G[match.second] << " " << value << " \t";
if ((++count % 3) == 0) cout << endl;
};
cout << endl;
return 0;
}
[解决办法]
map<int, vector<int> boys_used;改成:
map<int, vector<int> girls_used
map<int, vector<int>> boys_used;
map<int, vector<int>> girls_used;
map<int, vector<int> > boys_used;旧的编译器可能会把>>认为是操作符>>
map<int, vector<int> > girls_used;