gpt4 book ai didi

c++ - 如何比较两个 vector 中的两个值,然后更新 C++ 中的 vector 值?

转载 作者:行者123 更新时间:2023-11-28 03:02:18 26 4
gpt4 key购买 nike

感谢您对前面代码的帮助,伙计们!我现在正在扩展以前的查询以包括此代码: 我遇到了 for 循环和 if 语句没有输出的问题。我必须比较两个 vector 中的字符串,看看一个是否是另一个的子集;如果有一个子集,我必须删除它。 (这两个 vector 实际上是相同的......这本质上是将 vector 中的所有元素相互比较)。任何指导将不胜感激!

 //headers: iostream, vector
//namespace std
//main function

//each vector already has content (read from a file) stored in them. Both vectors hold the same elements.

int c,j; string first_sequence, second_sequence;
vector<string>::iterator ivector1; vector<string>::iterator ivector2;
vector<string> sequence_1; vector<string> sequence_2; vector<string> header;

//comparison of sequences within each element of vectors

size_t location,x,y,k,s;

k = sequence_1.size();
s = sequence_2.size();
for(ivector1 = sequence_1.begin(); ivector1< sequence_1.end(); ivector1++){
for(ivector2= sequence_2.begin();ivector2<sequence_2.end(); ivector2++){
*ivector1 = first_sequence; *ivector2 = second_sequence;

if(ivect1 != ivect2){
x = first_sequence.size();
y = second_sequence.size();

if(x > y){
location = first_sequence.find(second_sequence);
if (location != -1){
cout << "Deleting the sequence with id: <" << *ivector2 << endl;
sequence_2.erase(ivector2); *ivector2 = "gone";
}


} else if (y > x) {
location = second_sequence.find(first_sequence);
if (location != -1){
cout << "Deleting the sequence with id: <"<< *ivector1 << endl;
sequence_1.erase(ivector1); *ivector1 = "gone";

}

}
}
}
}

return 0;
}

最佳答案

您没有得到任何输出,因为 vector1 中的所有元素都不大于您插入到 vector2 中的最小值。因此,您测试的这个 if 条件

  if (*ilist1 > *ilist2)

永远不会满足,因此不会运行 cout 语句。我愿意打赌,如果你把它改成

 if (*ilist1 < *ilist2)

您将在终端/屏幕上看到输出。 3 总是 < 4。

关于c++ - 如何比较两个 vector 中的两个值,然后更新 C++ 中的 vector 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20455370/

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