includes の使用方法です.
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
bool less_a(int a, int b)
{
return (bool)((a < b) ? 1 : 0);
};
class less_b : public binary_function<int, int, bool>
{
public:
result_type operator() (first_argument_type a, second_argument_type b)
{
return (result_type)((a < b) ? 1 : 0);
}
};
int main()
{
bool b;
int i1;
vector<int> v1, v2, v3;
vector<int>::iterator it;
// 初期設定
printf("**初期状態 v1**\n");
for (i1 = 0; i1 < 5; i1++)
v1.push_back(i1+1);
for (it = v1.begin(); it != v1.end(); it++)
printf(" %d", *it);
printf("\n");
printf("**初期状態 v2**\n");
for (i1 = 0; i1 < 2; i1++)
v2.push_back(i1+2);
for (it = v2.begin(); it != v2.end(); it++)
printf(" %d", *it);
printf("\n");
printf("**初期状態 v3**\n");
v3.push_back(2);
v3.push_back(6);
for (it = v3.begin(); it != v3.end(); it++)
printf(" %d", *it);
printf("\n");
// v1 と v2
b = includes(v1.begin(), v1.end(), v2.begin(), v2.end(), less_a);
// 以下の方法でも可能
// b = includes(v1.begin(), v1.end(), v2.begin(), v2.end(), less_b());
if (b)
printf("v1 は v2 を含む\n");
else
printf("v1 は v2 を含まない\n");
// v3 と v2
b = includes(v1.begin(), v1.end(), v3.begin(), v3.end(), less_a);
// 以下の方法でも可能
// b = includes(v1.begin(), v1.end(), v3.begin(), v3.end(), less_b());
if (b)
printf("v1 は v3 を含む\n");
else
printf("v1 は v3 を含まない\n");
return 0;
}
(出力)
**初期状態 v1**
1 2 3 4 5
**初期状態 v2**
2 3
**初期状態 v3**
2 6
v1 は v2 を含む
v1 は v3 を含まない