你可以添加一个矢量大小的bool数组来指示是否采用这个索引,在O(n)中填充这个数组然后你可以遍历vector并选择另一个O(n)中的元素O(2*n)= O(n),如下所示:
#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
int main (){
vector<int> items ;
vector<int> notIncluded ;
items.push_back(1);
items.push_back(2);
items.push_back(3);
items.push_back(5);
notIncluded.push_back(1);
notIncluded.push_back(0);
vector<int> selectedItems;
bool idx[items.size()];
memset(idx, true, sizeof(idx));
for(int i=0;i<notIncluded.size();i++){
idx[notIncluded[i]] = false;
}
for(int i=0;i<items.size();i++){
if(idx[i]){
selectedItems.push_back(items[i]);
cout << items[i] << " " ;
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
475 次 |
| 最近记录: |