簡體   English   中英

C ++如何在vector&lt;對中找到一對3個整數<int, pair<int, int> &gt; &gt;

[英]C++ How to find pair of 3 integers in vector< pair<int, pair<int, int> > >

例如,我同時存儲 3 個元素,例如:

vector< pair<int, pair<int, int> > > myvec; myvec.push_back(make_pair(1, make_pair(2, 3))); 如何檢查 myvec 中是否存在 {1,2,3}(成對)?

您可以使用algorithm find()

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    
    vector< pair<int, pair<int, int> > > myvec;  
    auto p = make_pair(1, make_pair(2, 3));
    myvec.push_back(p);
    
    if ( std::find(myvec.begin(), myvec.end(), p) != myvec.end() )
        cout << "Found";
    else
        cout << "Not Found";
    return 0;
}

當然,你可以這樣做:

 for (auto mval: myvec) {
   if (mval.first == 1 && mval.second.first == 2 && mval.second.second == 3)
     cout << "Found" << endl;
 }

或這個:

typedef pair<int,int> IntPair;
typedef pair<int, IntPair> MyPair;
 
...
for (auto mval: myvec) {
   if (mval == MyPair(1, IntPair(2, 3)))
     cout << "Found" << endl;
 }

或其他一些方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM