<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ##實戰c++中的vector系列--對vector<自定義類>使用std::find 和 std::find_if 算法 之前博客講了一些關于std::find和std::find_ if的一些用法,但是沒有講述對于vector中存儲的是自定義的類,那么怎么樣使用std::find和std::find_if進行查找呢? 先定義一個類: ~~~ class Item { private: std::string m_ItemId; int m_Price; int m_Count; public: Item(std::string id, int price, int count): m_ItemId(id), m_Count(count), m_Price(price){} int getCount() const { return m_Count; } std::string getItemId() const { return m_ItemId; } int getPrice() const { return m_Price; } bool operator==(const Item & obj2) const { if(this->getItemId().compare(obj2.getItemId()) == 0) return true; else return false; } }; std::vector<Item> getItemList() { std::vector<Item> vecOfItems ; vecOfItems.push_back(Item("D121",100,2)); vecOfItems.push_back(Item("D122",12,5)); vecOfItems.push_back(Item("D123",28,6)); vecOfItems.push_back(Item("D124",8,10)); vecOfItems.push_back(Item("D125",99,3)); return vecOfItems; } ~~~ 接下來就是使用std::find算法了: ~~~ int main() { std::vector<Item> vecOfItems = getItemList(); std::vector<Item>::iterator it; it = std::find(vecOfItems.begin(), vecOfItems.end(), Item("D123", 99, 0)); if (it != vecOfItems.end()) std::cout << "Found with Price ::" << it->getPrice() << " Count :: " << it->getCount() << std::endl; else std::cout << "Item with ID :: D126 not Found" << std::endl; return 0; } //輸出: Found with Price ::28 Count :: 6 ~~~ 但是如果不能使用==的情況下,我們就可以使用find_if解決問題了:? 增加函數: ~~~ bool priceComparision(Item & obj, int y) { if(obj.getPrice() == y) return true; else return false; } ~~~ 就是這樣: ~~~ #include<iostream> #include<vector> #include<string> #include<algorithm> #include<functional> using namespace std; class Item { private: std::string m_ItemId; int m_Price; int m_Count; public: Item(std::string id, int price, int count) : m_ItemId(id), m_Count(count), m_Price(price) {} int getCount() const { return m_Count; } std::string getItemId() const { return m_ItemId; } int getPrice() const { return m_Price; } bool operator==(const Item & obj2) const { if (this->getItemId().compare(obj2.getItemId()) == 0) return true; else return false; } }; bool priceComparision(Item & obj, int y) { if (obj.getPrice() == y) return true; else return false; } std::vector<Item> getItemList() { std::vector<Item> vecOfItems; vecOfItems.push_back(Item("D121", 100, 2)); vecOfItems.push_back(Item("D122", 12, 5)); vecOfItems.push_back(Item("D123", 28, 6)); vecOfItems.push_back(Item("D124", 8, 10)); vecOfItems.push_back(Item("D125", 99, 3)); return vecOfItems; } int main() { std::vector<Item> vecOfItems = getItemList(); std::vector<Item>::iterator it; it = std::find_if(vecOfItems.begin(), vecOfItems.end(), std::bind(priceComparision, std::placeholders::_1, 28)); if (it != vecOfItems.end()) std::cout << "Item Price ::" << it->getPrice() << " Count :: " << it->getCount() << std::endl; else std::cout << "Item not Found" << std::endl; return 0; } ~~~ 最后還可以使用lambda表達式: ~~~ std::vector<Item> vecOfItems = getItemList(); std::vector<Item>::iterator it; it = std::find_if(vecOfItems.begin(), vecOfItems.end(), [](Item const& obj){ return obj.getPrice() == 28; } ); if(it != vecOfItems.end()) std::cout<<"Item Price ::"<<it->getPrice()<<" Count :: "<<it->getCount()<<std::endl; else std::cout<<"Item not Found"<<std::endl; ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看