我需要删除出现在向量A和向量B中的元素,但保留仅在向量A中的元素。向量的大小可以是任意的,但不一定相等。
例如,如果: 向量A包含值<1,4,66,22> 向量B包含值<1,22,44,93,102,543> 那么执行操作后: 向量A应该包含<4,66> 向量B应该包含<44,93,102,543> 我需要遍历两个向量并对比值来实现吗?还是有一个函数可以简化这个过程? 这是我尝试过的方法,但似乎不起作用。
例如,如果: 向量A包含值<1,4,66,22> 向量B包含值<1,22,44,93,102,543> 那么执行操作后: 向量A应该包含<4,66> 向量B应该包含<44,93,102,543> 我需要遍历两个向量并对比值来实现吗?还是有一个函数可以简化这个过程? 这是我尝试过的方法,但似乎不起作用。
string rawInput;
string fileInput;
vector<string> stdInput; //vector to hold standard input values
vector<string> fileList; //vector to hold file values
sizeIn = stdInput.size();
sizeFile = fileList.size();
if (sizeIn >= sizeFile)
{
for (count = 0;count <= sizeIn; count++)
{
for (count1 = 0; count1 <= sizeFile; count1++)
{
if (stdInput[count1] == fileList[count])
{
stdInput.erase(stdInput.begin()+count1-1);
fileList.erase(fileList.begin()+count-1);
}
}
}
}
else
{
for (count = 0; count <= sizeFile; count ++)
{
for (count1 = 0; count1 <= sizeIn; count1++)
{
if (stdInput[count] == fileList[count1])
{
stdInput.erase(stdInput.begin()+count-1);
fileList.erase(fileList.begin()+count1-1);
}
}
}
}
std::set_difference
。 - Some programmer dudestd::set_difference
。-- 并且使用 strncmp 比较值 -- strcmp??? - PaulMcKenzie