我正在解决一个编程问题,它想要找到两组之间的对称差异。我已经使用 STL 解决了它set_symmetric_difference
。我得到两个vector<int>s
,A
和B
:
A = {342,654,897,312,76,23,78}
B = {21,43,87,98,23,756,897,234,645,876,123}
灵魂回报(正确答案):
{ 21,43,76,78,87,98,123,234,312,342,645,654,756,876 }
但我得到:
{ 21,43,76,78,87,98,123,234,312,342,645,65,756,876}
问题是什么 ?这是我的代码:
sort(A.begin(), A.end());
sort(B.begin(), B.end());
// allocate the smallest size of A,B as maximum size
vector<int> c(A.size() < B.size() ? B.size() : A.size());
vector<int>::iterator i;
i = set_symmetric_difference(A.begin(), A.end(), B.begin(), B.end(), c.begin());
return vector<int>(c.begin(), i);
注意: 我得到了其余示例的正确答案。这个例子只给了我这个错误的答案。
我在 Visual Studio 中对其进行了测试,并收到一条错误消息:“Iterator not incrementable”