'std::vector::iterator it;' doesn't compile

前端 未结 2 764
北恋
北恋 2021-02-18 23:12

I\'ve got this function:

    template
    void Inventory::insertItem(std::vector& v, const T& x)
    {
        std::vector<         


        
相关标签:
2条回答
  • 2021-02-18 23:38

    What you are doing is inefficient. Use a binary search instead:

    #include <algorithm>
    
    template <typename T>
    void insertItem(std::vector<T>& v, const T& x)
    {
        v.insert(std::upper_bound(v.begin(), v.end(), x), x);
    }
    
    0 讨论(0)
  • 2021-02-18 23:43

    Try this instead:

    typename std::vector<T>::iterator it;
    

    Here's a page that describes how to use typename and why it's necessary here.

    0 讨论(0)
提交回复
热议问题