gpt4 book ai didi

c++ - C++ 中的集合和 xmemory

转载 作者:行者123 更新时间:2023-11-27 23:25:08 26 4
gpt4 key购买 nike

我想做的就是在给定关系的情况下生成一组对。我不断从文件 xmemory 的第 208 行收到以下错误:

error C2664: 'std::pair<_Ty1,_Ty2>::pair(std::pair<_Ty1,_Ty2> &)' : cannot convert parameter 1 from 'std::pair<_Ty1,_Ty2> ' to 'std::pair<_Ty1,_Ty2> &' c:\program files (x86)\microsoft visual studio 10.0\vc\include\xmemory 208

我不确定为什么,这是我的代码:

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));

您应该插入对而不是指向对的指针。

R.insert(pair<int, int>(i, j));

关于c++ - C++ 中的集合和 xmemory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9967078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com