【发布时间】:2014-04-01 12:05:02
【问题描述】:
我不认为我的标题是准确的所以只是去代码。
namespace Fobaizer
{
template <typename T, typename C>
static T GetItemFromContainer(const C &container) {
T item = container[0]; // do something. 0 or iterator
return item;
}
}
例子:
MyClass myClass = Fobaizer::GetItemFromContainer<MyClass, vector<MyClass>(myVector);
或
MyClass myClass = Fobaizer::GetItemFromContainer<MyClass, deque<MyClass>(myDeque);
这里的 C 是任何容器,例如 std::deque 或 std::vector。我搜索没有任何库(boost、QT 等)的 C98 解决方案
事实上,我正在寻找类似 C# 的 IEnumerable 的东西。
有什么想法吗?
谢谢。
【问题讨论】:
-
代码不够清晰。
C是一个类型;你不能C[0]。 -
@R.MartinhoFernandes 哦,对不起。我错过了一些东西。我会编辑。
标签: c++ templates containers