我已将我的代码更改为向量。现在我正在尝试找到联合、交叉点和 AB。我的 Union 和 Intersection 代码现在正在运行。我不知道如何做我的区别。我想我可以拿 A 如果它 == 到 B 然后不插入它,但它仍然把它们放进去。
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <fstream>
#include <algorithm>
using namespace std;
void Union();
void Intersection();
void Difference();
int main()
{
Union();
Intersection();
Difference();
return 0;
}
void SetVectors()
{
}
void Union()
{
int temp = 0;
vector<int> U{};
vector<int> A{3, 4, 9, 12, 13, 15, 16, 17};
vector<int> B{1, 3, 5, 7, 9};
for(int i = 0; i < A.size(); i++)
{
for (int j = 0; j < B.size(); j++)
{
if (A[i] != B[j])
{
int temp = A[i];
U.push_back(temp);
temp = B[j];
U.push_back(temp);
}
//Used To Sort The Vector So There Is No Duplicates And Its In Order!
sort( U.begin(), U.end() );
U.erase( unique( U.begin(), U.end() ), U.end() );
}
}
cout << "Union: ";
for(int z = 0; z < U.size(); z++)
{
cout << U[z] << " ";
}
}
void Intersection()
{
int temp = 0;
vector<int> U{};
vector<int> A{3, 4, 9, 12, 13, 15};
//Used To Sort The Vector So There Is No Duplicates And Its In Order!
sort( A.begin(), A.end() );
A.erase( unique( A.begin(), A.end() ), A.end() );
vector<int> B{1, 3, 5, 7, 9};
//Used To Sort The Vector So There Is No Duplicates And Its In Order!
sort( B.begin(), B.end() );
B.erase( unique( B.begin(), B.end() ), B.end() );
for(int i = 0; i < A.size(); i++)
{
for (int j = 0; j < B.size(); j++)
{
if (A[i] == B[j])
{
int temp = A[i];
U.push_back(temp);
temp = B[j];
U.push_back(temp);
}
//Used To Sort The Vector So There Is No Duplicates And Its In Order!
sort( U.begin(), U.end() );
U.erase( unique( U.begin(), U.end() ), U.end() );
}
}
cout << "Intersection: ";
for(int z = 0; z < U.size(); z++)
{
cout << U[z] << " ";
}
}
void Difference()
{
int temp = 0;
vector<int> D{};
vector<int> A{3, 4, 9, 12, 13, 15};
vector<int> B{1, 3, 5, 7, 9};
for(int i = 0; i < A.size(); i++)
{
for (int j = 0; j < B.size(); j++)
{
if (A[i] == B[j])
{
cout << A[i];
}
else
{
int temp = A[i];
D.push_back(temp);
}
//Used To Sort The Vector So There Is No Duplicates And Its In Order!
sort( D.begin(), D.end() );
D.erase( unique( D.begin(), D.end() ), D.end() );
}
}
cout << "Difference: ";
for(int z = 0; z < D.size(); z++)
{
cout << D[z] << " ";
}
}