通过size_type和const_iterator传递的正确返回类型是什么?

时间:2018-07-02 15:41:43

标签: c++ stl

我正在尝试创建一个不需要<或哈希函数的集合。我创建了以下内容,但不确定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;
}

0 个答案:

没有答案