9.3.6

来源:互联网 发布:我想开个网络棋牌室 编辑:程序博客网 时间:2024/06/05 16:56

9.31
@pezy

#include <iostream>#include <list>using std::list;using std::cout;using std::advance;auto remove_evens_and_double_odds(list<int>& data){    for(auto cur = data.begin(); cur != data.end();)        if (*cur & 0x1)            cur = data.insert(cur, *cur), advance(cur, 2);        else            cur = data.erase(cur);}int main(){    list<int> data { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };    remove_evens_and_double_odds(data);    for (auto i : data) cout << i << " ";    return 0;}
#include <iostream>#include <forward_list>using std::forward_list;using std::cout;using std::advance;auto remove_evens_and_double_odds(forward_list<int>& data){    for(auto cur = data.begin(), prv = data.before_begin(); cur != data.end();)        if (*cur & 0x1)            cur = data.insert_after(prv, *cur),            advance(cur, 2),            advance(prv, 2);        else            cur = data.erase_after(prv);}int main(){    forward_list<int> data { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };    remove_evens_and_double_odds(data);    for (auto i : data)        cout << i << " ";    return 0;}

9.32
总之不要这样写。
https://github.com/Mooophy/Cpp-Primer/issues/125

9.33
没有这句后,begin不会跳过我们加入的元素。

9.34
把vi中的奇数拷贝一个放在本奇数的后面

0 0