我对set.union(C++)有问题
I have an issue with set.union (C++)
我正在尝试并集两个集合(在一个向量中)。
setA包含a,b。setB包含一个,c.
并集之后,结果应该包含a、b、c。但是,该程序无法运行,它存在某种调试错误。
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
vector<char> setA;
vector<char> setB;
vector<char> result;
vector<char>::iterator it;
setA.push_back('a');
setA.push_back('b');
setB.push_back('a');
setB.push_back('c');
it = set_union(setA.begin(), setA.end(), setB.begin(), setB.end(), result.begin());
for (int i = 0; i < result.size(); i++)
{
cout << result[i] << " ";
}
system("PAUSE");
}
有人知道问题出在哪里吗?
您应该将结果向量resize
用于容纳并集的最大大小,或者使用std::back_inserter
:
it = set_union(setA.begin(), setA.end(),
setB.begin(), setB.end(),
back_inserter(result));
相关文章:
- 我似乎对if/else的基本语句有问题:/
- 我在范围内未声明的错误类有问题
- 我的C++语言蛮力算法有问题
- 我关于函数"Assert"的C++代码有问题
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- C++类中的友元函数有问题?
- 我对数组即 0x6dfe78 有问题
- 我对 std::unique(算法)C++有问题
- 使用 fstream 库并在屏幕上打印的文件有问题?
- 这个模板为什么有问题?如何正确编译
- 我对 MyGraph 属性顶点名称和边权重有问题
- delete[]有问题,如何部分删除内存
- 在C++中使用exit()退出程序有问题吗
- 跳转到if(false)块有问题吗
- 查找有问题的宏
- 使用 rand() 和 srand() 有问题
- C++ 回文程序总是给出 0(假)作为输出问题;我的代码哪里有问题?
- 我在 C++ "out_of_range at memory location"有问题
- 我在 c++ 中的 AES 代码有问题。明文正在更改,但加密邮件是相同的。我找不到我的错误
- 标头中的模板规范有问题