读书人

设计一个c++函数每调用一次从vector

发布时间: 2012-04-15 18:39:21 作者: rapoo

设计一个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();} 

读书人网 >C++

热点推荐