设计一个c++函数,每调用一次从vector中读出下一个字符。解决思路
设计一个c++函数,每调用一次从vector中读出下一个字符。
如在main()中调用;
int main()
{
getnextchar();
getnextchar();
return 0;
} // 第一次读出1, 第二次调用读出2
有一个能用的解决方案
还有没更高级点的????
------解决方案--------------------
如在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(); }