我想编写自己的算法(只是一个真正的函数),它需要一系列迭代器.如果迭代器来自映射,我想使用数据(迭代器 - >第二)值.如果迭代器像向量或列表一样"正常",我只想使用解除引用的迭代器值.
我认为,价值获取的想法就在这里,但你可以c++11
在没有结构的情况下实现它,只使用函数:
template <typename T>
const T& get(const T& t)
{
return t;
}
template <typename T, typename V>
const V& get(const std::pair<T,V>& t)
{
return t.second;
}
int main()
{
std::vector<int> v = {1};
std::cout << get(*v.begin());
std::cout << "\n----\n";
std::map<int, std::string> m;
m.insert(std::make_pair(0, "sss"));
std::cout << get(*m.cbegin());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
496 次 |
最近记录: |