首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

高手们帮忙分析一下,该如何解决

2012-05-05 
高手们帮忙分析一下先看代码:C/C++ codetypedef vectorchar VCclass back_encoder_iterator { VC& cont

高手们帮忙分析一下
先看代码:

C/C++ code
typedef vector<char> VC;class back_encoder_iterator { VC& container; void push(const char* p) { while(*p) container.push_back(*p++); }public: back_encoder_iterator(VC& v) : container(v) {} back_encoder_iterator& operator=(char); back_encoder_iterator& operator*() { return *this; } back_encoder_iterator& operator++() { return *this; } back_encoder_iterator& operator++(int) { return *this; }};back_encoder_iterator&back_encoder_iterator::operator=(char c){ switch(c) {  case '<' : push("&lt;") ; break;  case '>' : push("&gt;") ; break;  case '&' : push("&amp;"); break;  case '\n': push("<BR>\n"); break;  default : container.push_back(c); break; } return *this;}inline back_encoder_iterator back_encoder(VC& x) { return back_encoder_iterator(x);}// 下面是抛出问题的地方int HttpBuf::sync(){ if(owner_.iword(xindex))  ::copy(pbase(),pptr(),back_encoder(buffer_));  // 此处抛出错误 else  ::copy(pbase(),pptr(),back_inserter(buffer_)); setp(pbase(), epptr()); return 0;}


抛出的错误是:
  stl_iterator_base_types.h:129: 错误:没有名为 ‘iterator_category’ 的类型
  stl_iterator_base_types.h:130: 错误:没有名为 ‘value_type’ 的类型

如何解决?请不吝赐教
 

[解决办法]
iterator需要定义几个内部类型。请参考下面文章:
http://www.oonumerics.org/tmpw00/becker.html
[解决办法]
探讨

back_encoder_iterator其实不是真正意义上的迭代器,只是对vector<char>进行了封装。

热点排行