Chinaunix

标题: std::list splice 末尾追加一个链表是否正确。 谢谢 [打印本页]

作者: keep_silence    时间: 2012-07-23 12:00
标题: std::list splice 末尾追加一个链表是否正确。 谢谢
需要合并两个链表,b追加到a的末尾,请问下面这种用法是否正确? 个人感觉使用a.end () 可能有点问题,不知道标准方法怎么用。谢谢。

---------------------------------
#include <stdio.h>
#include <list>

int
main ()
{
    std::list<int> a;
    std::list<int> b;

    int i = 0;

    for (; i < 10; ++i) {
        a.push_back (i);
    }

    for (; i < 20; ++i) {
        b.push_back (i);
    }

    a.splice (a.end (), b);

    std::list<int>::iterator iter = a.begin ();
    std::list<int>::iterator iter_end = a.end ();

    for (; iter != iter_end; ++iter) {
        printf ("%d\n", *iter);
    }
}

作者: bruceteen    时间: 2012-07-23 12:15
正确,就是不像C++
  1. #include <list>
  2. #include <list>
  3. #include <iostream>

  4. int main ()
  5. {
  6.     std::list<int> a;
  7.     for (int i=0; i<10; ++i) {
  8.         a.push_back (i);
  9.     }

  10.     std::list<int> b;
  11.     for (int i=0; i<20; ++i) {
  12.         b.push_back (i);
  13.     }

  14.     a.splice (a.end (), b);

  15.     for (std::list<int>::iterator itor=a.begin(); itor!=a.end(); ++itor) {
  16.         std::cout << *itor << '\n';
  17.     }

  18.     return 0;
  19. }
复制代码

作者: keep_silence    时间: 2012-07-23 13:43
回复 2# bruceteen

谢谢 !
   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2