当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: 在简繁体转换的功能中,页面中有一个iframe的话,iframe中的文字怎么转换?只能转换一个页面,我试了好几个方法都不可的。哪位成功过? 有两个文件: //-------------------main.html--------------------// <script type="text/javascript" language="javascr......
    摘要: 注册表存在哪个文件中,是文本文件吗? ......


高手帮助

1。如何访问list的每个元素??情给一个例子.  
  2.有一段代码看不懂,是一个数组的翻转的代码如下:  
   
  /**************************************************  
  ilist   是自定义链表类,ilist_item是自定义链表元素类,  
  _at_front是ilist_item的指针定义为ilist_item   *_at_front=0;  
  _at_end类同  
  ***************************************************/  
  void   ilist::reverse()  
  {  
          ilist_item   *ptr=_at_front;  
          ilist_item   *prve=0;  
          _at_front=_at_end;  
          _at_end=ptr;  
          while(ptr!=_at_front)  
          {  
                ilist_item   *tem=ptr->next();//while部分看不懂  
                ptr->next(prev);  
                prev=ptr;  
                ptr=tem;  
          }  
            _at_front->next(prev);  
  }  
  望各位高手指点一下,小弟先谢谢拉!!

NO.1   作者: jiajun2001

这是数据结构的问题啊,比较简单了。  
  不管访问list中的那个元素,都要从头部开始,一个节点一个节点的查找。  
  在while中的部分实际上就是从头节点开始,首先将其next节点作为临时节点保存起来,并将头节点的next指针设置为0(因为prve初始为0),   将这个头节点赋给prev,然后再将临时节点赋给ptr,这样再次到循环开始处,tem就会得到第三个节点的指针,那么如此往复,就完成了list的反转过程。  
  不知道我这么解释楼主是否理解了。  
  楼主应该多看看有关数据结构方面的著作。

NO.2   作者: zhouhuahai

遍历list:  
   
  #include<iostream>  
  #include<list>  
  using   namespace   std;  
  int   main()  
  {  
  list<int>   li;  
  for(int   i   =   0;   i<10;   i++)  
  li.push_back(i);  
  list<int>::iterator   it;  
  for(it   =   li.begin();   it!=li.end();   it++)  
  cout<<*it<<"   ";  
  return   0;  
  }  
 

NO.3   作者: vteliang

ilist_item   *tem=ptr->next();//从链表头开始 一个节点一个节点查找,并赋给tem  
                ptr->next(prev);//把链表反转,如:第二个节点指向第一个节点  
                prev=ptr;//为while下一次把链表反转作准备,如:第三个节点指向第二个节点  
                ptr=tem;//取链表的第二个节点  
 

NO.4   作者: wf20032723

多谢各位高手的帮助,小弟还有一个问题想请教:  
      用list删除数组ai[]={0,1,1,3,5,8,21,35,89,99}中奇数位置上的元素,要使用erase方法,我编了一个程序,但通不过,想问一下错在那里,该如何改正??  
  #include<iostream>  
  #include<list>  
  using   namespace   std;  
  void   main()  
  {  
          int   ai[]={0,1,1,2,3,5,8,13,21,55,89};  
          list<int>ilist(ia,ia+11);  
          list<int>::iterator   iter=ilist.begin();  
          for(;iter!=ilist.end();)  
          {  
                    ilist.erase(iter);  
                    iter=list.begin()->next;  
                    iter=iter->next;  
          }  
  }

NO.5   作者: wzjall

#include<iostream>  
  #include<list>  
  using   namespace   std;  
  void   main()  
  {  
          int   ia[]={0,1,1,2,3,5,8,13,21,55,89};  
          list<int>ilist(ia,ia+11);  
   
          list<int>::iterator   iter=ilist.begin();  
  for   (int   i=0;i<6;i++)  
  {  
  ilist.erase(iter);  
  iter=ilist.begin();  
  }  
  }

NO.6   作者: wzjall

避免修改操作与遍历操作交叉在一起,因为ilist.erase(iter);  
  使得跌代器实效

NO.7   作者: wf20032723

但是,你的代码经过调试,还是不行啊??


 ·无聊的周末    »显示摘要«
    摘要: 无聊的周末 散分! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE