你能为C推荐一个好的通用数据容器库(纯C,而不是C++)吗?我只需要基本结构,如动态数组,哈希表等.
(注意:"好"我的意思是快速+优雅的界面).
我上课了
template <typename Iterator, typename Value>
class Foo {
public:
Foo(const Iterator& it) { ... }
...
private:
map<Value, int> m_;
}
};
Run Code Online (Sandbox Code Playgroud)
有没有办法摆脱模板中的价值?迭代器可能是也可能不是STL迭代器,但它保证*它的类型是Value.
我知道iterator_traits<T>::value_typeSTL迭代器,但想知道是否有任何方法可以自动为任意Iterator类型获取Value类型?
我正在考虑的一个技巧 - 比方说,我们有一个助手类
template <typename Iterator, typename Value>
class Bar {
public:
Bar(const Iterator& dummy_iterator, const Value& dummmy_value) {}
...
};
Run Code Online (Sandbox Code Playgroud)
然后,如果我们将Bar实例化为Bar(它,*it),则在Bar中将知道Value的类型.但我找不到将Bar与Foo结合起来的好方法.