本文介绍了C ++中的集合和xmemory的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要做的就是给定一对关联.我不断从文件xmemory的第208行收到以下错误:
All I am trying to do is make a set of pairs given a relation.I keep getting the following error from line 208 in file xmemory:
我不确定为什么,这是我的代码:
I am not sure why, here is my code:
void print_relation(const set<pair<int, int>> R);
set<pair<int, int>> init_relation(const int A[], const int size);
void main()
{
int A[] = {1, 4, 5, 7, 8, 13, 18, 22, 39};
const int size = 9;
set<pair<int, int>> R = init_relation(A, size);
print_relation(R);
system("pause");
}
void print_relation(const set<pair<int, int>> R)
{
set<pair<int, int>>::iterator Rit = R.begin();
cout << "Relation R:" << endl << endl;
for(int i = 0; Rit != R.end(); Rit++, i++)
{
printf("%d: (%d, %d)\n", i, (*Rit).first, (*Rit).second);
}
}
set<pair<int, int>> init_relation(const int A[], const int size)
{
set<pair<int, int>> R;
for(int i = 0; i < size - 1; i++)
{
for(int j = 0; j < size - 1; j++)
{
if( (A[i] - A[j]) % 7 == 0 )
{
R.insert(new pair<int, int>(i, j));
}
}
}
return R;
}
推荐答案
错误在这里
R.insert(new pair<int, int>(i, j));
您应该插入配对而不是指向配对的指针.
You should insert pair not pointer to pair.
R.insert(pair<int, int>(i, j));
这篇关于C ++中的集合和xmemory的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!