判断两个vector是否相等
时间: 2023-05-22 16:06:50 浏览: 344
判断两个vector是否相等可以使用vector的==运算符进行比较,如果两个vector中的所有元素都相等且元素个数相同,则这两个vector相等。具体实现可以参考以下代码:
```c++
bool isEqual(vector<int> vec1, vector<int> vec2) {
if (vec1.size() != vec2.size()) {
return false;
}
return vec1 == vec2;
}
```
使用方式:
```c++
vector<int> vec1 {1, 2, 3};
vector<int> vec2 {1, 2, 3};
vector<int> vec3 {1, 2, 4};
bool res1 = isEqual(vec1, vec2); // true
bool res2 = isEqual(vec1, vec3); // false
```
注意:上述代码只适用于int类型的vector,如果vector中的元素是复杂对象,则需要自定义==运算符进行比较。
相关问题
std::vetcor 判断两个元素相等
std::vector没有直接判断两个元素相等的函数,但可以使用std::equal函数来判断两个vector是否相等。
示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = {1, 2, 3};
std::vector<int> v3 = {1, 2, 4};
bool isEqual1 = std::equal(v1.begin(), v1.end(), v2.begin());
bool isEqual2 = std::equal(v1.begin(), v1.end(), v3.begin());
std::cout << std::boolalpha << isEqual1 << std::endl; //true
std::cout << std::boolalpha << isEqual2 << std::endl; //false
return 0;
}
```
在上面的示例代码中,我们使用std::equal函数分别判断了v1和v2、v1和v3是否相等。其中,std::boolalpha是一个输出流格式标记,将bool类型的值以true或false形式输出。
std::vector 判断两个元素相等 并删除其中一个元素
可以使用 std::remove_if 算法结合 lambda 表达式来实现:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 2, 4, 5, 2};
vec.erase(std::remove_if(vec.begin(), vec.end(), [&](int x) {
return x == 2 && std::count(vec.begin(), vec.end(), 2) > 1;
}), vec.end());
for (auto x : vec) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
```
以上代码中,lambda 表达式中的 x == 2 && std::count(vec.begin(), vec.end(), 2) > 1 表示只有当 x 的值为 2,且在整个 vector 中 2 的个数大于 1 时才返回 true,也就是只删除其中一个 2。
执行结果:
```
1 3 2 4 5
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)