forward_list复制奇数删除偶数
Practice9.31
#include <iostream>
#include <queue>
#include <string>
#include <vector>
#include <algorithm>
#include <list>
#include <iterator>
#include <cmath>
#include <cstring>
#include <forward_list>
using namespace std;
void flst_print(forward_list<int> & flst) {
for(auto i : flst) {
cout << i << " ";
}
cout << endl;
}
int main() {
forward_list<int> flst = {7, 8, 9, 10, 11, 12};
auto it = flst.begin();
auto pre_it = flst.before_begin();
while(it != flst.end()) {
if(*it % 2) {
it = flst.insert_after(it, *it);
++it;
++pre_it;
++pre_it;
}
else {
it = flst.erase_after(pre_it);
}
}
flst_print(flst);
return 0;
}
wanglangdeMacBook-Pro:Documents wanglang$ vim test.cpp
wanglangdeMacBook-Pro:Documents wanglang$ vim test.cpp
wanglangdeMacBook-Pro:Documents wanglang$ vim test.cpp
wanglangdeMacBook-Pro:Documents wanglang$ cat test.cpp
#include <iostream>
#include <queue>
#include <string>
#include <vector>
#include <algorithm>
#include <list>
#include <iterator>
#include <cmath>
#include <cstring>
#include <forward_list>
using namespace std;
void flst_print(forward_list<int> & flst) {
for(auto i : flst) {
cout << i << " ";
}
cout << endl;
}
int main() {
forward_list<int> flst = {7, 8, 9, 10, 11, 12};
auto it = flst.begin();
auto pre_it = flst.before_begin();
cout << "Original forward_list: " << endl;
flst_print(flst);
while(it != flst.end()) {
if(*it % 2) {
it = flst.insert_after(it, *it);
++it;
++pre_it;
++pre_it;
}
else {
it = flst.erase_after(pre_it);
}
}
cout << "Copy odd number and delete even number: " << endl;
flst_print(flst);
return 0;
}
Output
Original forward_list:
7 8 9 10 11 12
Copy odd number and delete even number:
7 7 9 9 11 11
The word ‘impossible’ is not in my dictionary.