[英]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.