编写此代码的正确方法是什么?

Kri*_*fon 0 c++ boost iterator stl vector

typedef boost::shared_ptr<config_value_c> config_value_ptr;

typedef std::vector<config_value_ptr> config_value_vec;

config_value_vec config;

typeof (config.iterator ()) it = config.iterator ();
Run Code Online (Sandbox Code Playgroud)

我想将一个迭代器提取到类config_value_c的boost指针数组.我知道我可以将迭代器指定为std :: vector <config_value_ptr> :: iterator但我想以类型无关的方式执行此操作,因此如果我将向量更改为列表,则不必返回并更新代码.那可能吗?谢谢.

我知道typeof不是一个真正的关键字,我知道typeid但它不能做我想要的.

Kim*_*man 8

我想你想要:

config_value_vec::iterator it = config.begin();
Run Code Online (Sandbox Code Playgroud)

下一版C++标准(C++ 0x)将允许您:

auto it = config.begin();
Run Code Online (Sandbox Code Playgroud)