Я хочу показать свой ответ пользователю.Мой ответ в Check_Answer SET (STL).Чья декларация выглядит следующим образом:
typedef pair<int,int> Ans;
set<Ans>Check_Answer;
Теперь я передаю его в функцию для отображения ответа, и это выглядит так:
void showanswer(set<Ans>Check_Answer){
set<Ans>::const_iterator itr;
cout<<"Answer:"<<endl;
for(itr = Check_Answer.begin();itr!=Check_Answer.end();itr++){
cout<<itr->first<<" "<<itr->second<<endl;
}
}
Мне трудно разобратьсякак отобразить ответ.
Ожидаемый результат должен быть таким:
0 0
0 1
0 2
1 2 ...
В основном, печать значений int, которые являются индексами матрицы.
Фрагмент функции, в которой используется Check_Answer:
void tracePath(cell cellDetails[][COL], Pair dest, int grid[][COL],Pair src )
{
int x_cor,y_cor=51;
printf ("\nThe Path is ");
int row = dest.first;
int col = dest.second;
stack<Pair> Path;
while (!(cellDetails[row][col].parent_i == row
&& cellDetails[row][col].parent_j == col ))
{
Path.push (make_pair (row, col));
int temp_row = cellDetails[row][col].parent_i;
int temp_col = cellDetails[row][col].parent_j;
row = temp_row;
col = temp_col;
}
int ans;
Path.push (make_pair (row, col));
set<Ans>Answer;
set<Ans>Check_Answer;
while (!Path.empty())
{
pair<int,int> p = Path.top();
Path.pop();
Check_Answer.insert(make_pair(p.first,p.second));
}
int i,x,y,Key;
int a= src.first, b=src.second;
cout<<"You have \x03 Lifelines"<<endl;
cout<<"Enter -1,-1 to terminate answer"<<endl;
while(true){
cin>>Key;
if(Key==0)
a=b=-1;
else if(Key==8){
a=a-1;
}
else if(Key==2){
a=a+1;
}
else if(Key==6){
b=b+1;
}
else if(Key==4){
b=b-1;
}
else if(Key==9){
a=a-1;
b=b+1;
}
else if(Key==7){
a=a-1;
b=b-1;
}
else if(Key==3){
a=a+1;
b=b+1;
}
else if(Key==1){
a=a+1;
b=b-1;
}
if(a==-1 && b==-1){
break;
}
else if(grid[a][b]==0){
cout<<"You cannot make IAF jets flyover pakistan governed territory!!\n";
y_cor+=2;
continue;
}
else {
x=9*b;
y=3+(5*a);
for(i=0;i<4;i++)
{
gotoxy(x,y);
cout<<"\xB1\xB1\xB1\xB1\xB1\xB1\xB1\xB1";
y++;
}
gotoxy(0,y_cor);
Answer.insert(make_pair(a,b));
}
}
if(Answer == Check_Answer)
cout<<"BOOM BOOM BOOM!!\n\nJ-e-M camp has been eradicated."<<endl;
else {
cout <<"Oops This was no brainer dude! Anyway Try again next time :p"<<endl;
cout<<"Do you want to know the answer(Y/N):"<<endl;
cin>>ans;
if(ans=='y'||ans=='Y')
showanswer(Check_Answer);
}
}
При вводе правильных значений проблем не возникает, но при попытке отобразить ответ значения не печатаются. введите описание изображения здесь