c++测试两个vector是否相等

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main(){

	vector<int> vec_1(4,10);
	vector<int> vec_2(4,10);


	unsigned int size_1 = vec_1.size();
	unsigned int size_2 = vec_2.size();

	if( size_1 != size_2 ){
		cout << "NO" << endl;
	} else if ( size_1 == 0 ){
		cout << "YES" << endl;
	} else {
		for( 	vector<int>::iterator ite1 = vec_1.begin(), ite2 = vec_2.begin();
				ite1 != vec_1.end(), ite2 != vec_2.end();
				ite1++, ite2++
		){
			if( *ite1 != *ite2 ){
				cout << "NO" << endl;
				break;
			}
		}
	}
	cout << "YES" << endl;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中,可以使用以下方法对比两个vector: 1. 逐元素比较:可以使用循环遍历两个vector,并逐个比较对应位置的元素。如果所有元素都相等,则两个vector相等;否则,它们不相等。 2. 使用std::equal函数:C++标准库提供了std::equal函数,可以用于比较两个容器是否相等。该函数接受两个迭代器范围作为参数,并返回一个布尔值,表示两个范围内的元素是否相等。 3. 使用std::lexicographical_compare函数:如果需要按字典顺序比较两个vector,可以使用std::lexicographical_compare函数。该函数接受两个迭代器范围作为参数,并返回一个布尔值,表示第一个范围是否在字典顺序上小于第二个范围。 下面是一个示例代码,演示了如何使用以上方法对比两个vector: ```cpp #include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> vec1 = {1, 2, 3}; std::vector<int> vec2 = {1, 2, 3}; // 方法1:逐元素比较 bool isEqual = true; if (vec1.size() == vec2.size()) { for (size_t i = 0; i < vec1.size(); i++) { if (vec1[i] != vec2[i]) { isEqual = false; break; } } } else { isEqual = false; } std::cout << "方法1:逐元素比较,结果为 " << (isEqual ? "相等" : "不相等") << std::endl; // 方法2:使用std::equal函数 bool isEqual2 = std::equal(vec1.begin(), vec1.end(), vec2.begin()); std::cout << "方法2:使用std::equal函数,结果为 " << (isEqual2 ? "相等" : "不相等") << std::endl; // 方法3:使用std::lexicographical_compare函数 bool isLess = std::lexicographical_compare(vec1.begin(), vec1.end(), vec2.begin(), vec2.end()); bool isGreater = std::lexicographical_compare(vec2.begin(), vec2.end(), vec1.begin(), vec1.end()); bool isEqual3 = !(isLess || isGreater); std::cout << "方法3:使用std::lexicographical_compare函数,结果为 " << (isEqual3 ? "相等" : "不相等") << std::endl; return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值