我正在尝试创建一个不需要<
或哈希函数的集合。我创建了以下内容,但不确定size()
,cbegin()
和cend()
的正确返回类型是什么。我尝试了std::
和deque<t>::
的不同组合,但运气不佳。我知道从理论上讲,这种对象的性能会很差,但是我从不希望它包含超过64个元素。我认为这可能主要是语法问题。
#include <deque>
template <typename t>
struct unordered_eq_set
{
public:
//This is a set for items where < does not exist - inserts are O(N).
void insert(const t& item)
{
for (t& testItem : items)
{
if (testItem == item)
{
return;
}
}
items.insert(item);
return;
}
std::deque<t>::size_type size()
{
return items.size();
}
std::deque<t>::const_iterator cbegin()
{
return items.cbegin();
}
std::deque<t>::const_iterator cend()
{
return items.cend();
}
private:
std::deque<t> items;
};
int main()
{
unordered_eq_set<int> dumbSet;
dumbSet.insert(3);
return 0;
}