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

设计一个c++函数,每调用一次从vector中读出下一个字符。解决思路

2012-04-15 
设计一个c++函数,每调用一次从vector中读出下一个字符。如在main()中调用;int main(){getnextchar()getnex

设计一个c++函数,每调用一次从vector中读出下一个字符。
如在main()中调用;

int main()

{

  getnextchar();

  getnextchar();

  return 0; 

} // 第一次读出1, 第二次调用读出2


有一个能用的解决方案

C/C++ code
#include <iostream>#include <vector>using namespace std;void getnextchar();int main(){    getnextchar();    getnextchar();    return 0;}void getnextchar(){    static vector<char> vec;        vec.push_back('a');        vec.push_back('b');        static int i=0;        cout << vec[i];        i++;}


还有没更高级点的????

[解决办法]
C/C++ code
#include<vector>#include<iostream>template<class T>struct getnextchar_{    typename T::const_iterator i;    template<class P>    getnextchar_(const P& c)        : i(c.cbegin())    {}    void operator()()    {        std::cout << *i++;    }};static std::vector<char> v{'1', '2'};static auto getnextchar = getnextchar_<std::vector<char>>(v);int main(){  getnextchar();  getnextchar();} 

热点排行