STL list中splice和merge方法使用的小错误!

原创
2016/12/06 17:34
阅读数 627

int a[] = { 2, 13, 4, 5, 9 };
    list<int>L1;
    L1.push_back(2);
    L1.push_back(5);
    L1.push_back(9);
    L1.push_back(10);
    L1.push_back(13);

    list<int>L3(a, a + sizeof(a) / sizeof(a[0]));

    L3.splice(L3.end(), L1);
    copy(L3.begin(), L3.end(), ostream_iterator<int>(cout, "\t"));
    cout << endl;
    cout << "L1 element:" << endl;
    copy(L1.begin(), L1.end(), ostream_iterator<int>(cout, "\t"));
    cout << endl;

//错误在这里,之前已经将L1置空,现在又对L1进行移动
    cout << "L1 and L3.begin() :" << endl;
    L3.splice(L3.begin(), L1);
    copy(L3.begin(), L3.end(), ostream_iterator<int>(cout, "\t"));
    cout << endl;
    L3.splice(L3.end(), L1);
    copy(L3.begin(), L3.end(), ostream_iterator<int>(cout, "\t"));
    list<int>::iterator temp = L1.begin();
    advance(temp, 2);
    L3.splice(L3.begin(), L1, L1.begin(), temp);
    copy(L3.begin(), L3.end(), ostream_iterator<int>(cout, "\t"));
    cout << endl;
    cout << "L3.merger(L2)" << endl;
    L3.merge(L1);
    copy(L3.begin(), L3.end(), ostream_iterator<int>(cout, "\t"));

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部