0
我期待比較兩組並通過遍歷第一組來顯示第二組中缺失的元素。比較列表/設置元素
我已經完成了使用列表,但它似乎是一個開銷遍歷無序列表來查找元素。
#include <iostream>
#include <list>
using std::list;
bool isExist(list <int> &original, int i)
{
list <int>::iterator iter;
for (iter = original.begin(); iter != original.end(); iter++)
{
if (*iter == i) {
original.splice(original.end(), original, iter);
return true; }
}
return false;
}
void FindMissing(list <int> &original, list <int> &missing)
{
int count_exist = 0;
list <int>::iterator iter;
for (iter = missing.begin(); iter != missing.end(); iter++)
{if (isExist(original, *iter))
count_exist++;}
int count_missing = original.size() - count_exist;
iter = original.begin();
while(count_missing > 0)
{
std::cout << *iter++ << std::endl;
count_missing--;
}
}
int main()
{
list <int> list_data_1;
list <int> list_data_2;
//Fill the list.
for (int i = 0; i < 5; i++)
list_data_1.push_back(i);
//Fill second list with missing elements.
list_data_2.push_back(3);
list_data_2.push_back(1);
list_data_2.push_back(4);
FindMissing(list_data_1, list_data_2);
}
你會如何做同樣的設置?
當,打我吧。很好的解釋。 – 2010-06-09 01:49:36