How to find out if an item is present in a std::vector?

后端 未结 18 2418
滥情空心
滥情空心 2020-11-22 05:31

All I want to do is to check whether an element exists in the vector or not, so I can deal with each case.

if ( item_present )
   do_this();
else
   do_that(         


        
18条回答
  •  执念已碎
    2020-11-22 06:24

    (C++17 and above):

    can use std::search also

    This is also useful for searching sequence of elements.

    #include 
    #include 
    #include 
    
    template 
    bool search_vector(const Container& vec, const Container& searchvec)
    {
        return std::search(vec.begin(), vec.end(), searchvec.begin(), searchvec.end()) != vec.end();
    }
    
    int main()
    {
         std::vector v = {2,4,6,8};
    
         //THIS WORKS. SEARCHING ONLY ONE ELEMENT.
         std::vector searchVector1 = {2};
         if(search_vector(v,searchVector1))
             std::cout<<"searchVector1 found"< searchVector2 = {6,8};
         if(search_vector(v,searchVector2))
             std::cout<<"searchVector2 found"< searchVector3 = {8,6};
         if(search_vector(v,searchVector3))
             std::cout<<"searchVector3 found"<

    Also there is flexibility of passing some search algorithms. Refer here.

    https://en.cppreference.com/w/cpp/algorithm/search

提交回复
热议问题