当前位置: 首页 > news >正文

原来两个std::vector可以直接进行相等判断的吗?

2025年9月25日,周四晚上

学了几年C++,今天才知道这个


在 C++ 中,标准库已经为 std::vector重载了 ==运算符,因此可以直接使用 vec1 == vec2来判断两个向量是否相等,这非常方便。

⚖️ 相等判断的具体规则

直接使用 ==进行比较时,需要同时满足以下两个条件,结果才会是 true

  1. ​大小相同​​:两个 vector必须包含相同数量的元素。这是比较的第一步,如果大小不同,会立刻返回 false

  2. ​对应元素相等​​:两个 vector中​​相同位置​​上的每一个元素都必须相等。这意味着元素的​​顺序​​至关重要

它的工作原理类似于先检查 size()是否相等,然后再调用 std::equal函数逐个比较对应位置的元素。

🔍 代码示例与注意事项

下面的代码展示了直接比较的用法

#include <iostream>
#include <vector>
#include <string>int main() {// 示例1:内容相同、顺序相同std::vector<std::string> vec1 = {"apple", "banana", "cherry"};std::vector<std::string> vec2 = {"apple", "banana", "cherry"};if (vec1 == vec2) {std::cout << "vec1 and vec2 are equal." << std::endl; // 会执行}// 示例2:内容相同、顺序不同std::vector<std::string> vec3 = {"apple", "banana", "cherry"};std::vector<std::string> vec4 = {"banana", "apple", "cherry"};if (vec3 == vec4) {std::cout << "vec3 and vec4 are equal." << std::endl;} else {std::cout << "vec3 and vec4 are NOT equal (different order)." << std::endl; // 会执行}return 0;
}

​一个重要提示​​:当 vector中存储的是指针(例如 std::vector<int*>)时,==比较的是指针的值(即内存地址),而不是指针所指对象的内容。如果两个指针指向不同的内存地址,即使这些地址上的值完全相同,也会被认为是不相等的。

http://www.dtcms.com/a/407584.html

相关文章:

  • 电子工程基础原理与应用指南(初学者版)电子工程入门:三极管与MOS管全解析
  • Rust/C/C++ 混合构建 - 用Bazel构建Rust与C
  • 微信公众号的网站长沙景点视频
  • 东莞网站建设qq群网站建设与维护项目六
  • ProxySQL:实现MySQL8.0主从同步与读写分离
  • 制作网站需要学什么软件灵璧做网站的公司
  • 基于FPGA的HDB3编解码(verilog语言)
  • 北京个人网站备案wordpress 同步公众号
  • python 做网站多用户商城网站建设
  • 如何学做网站外包做网站与网页有什么区别
  • 视觉SLMA工具
  • 初识nextjs
  • 海口手机版网站建设管理网站建设
  • 定西市网站建设咨询python做网站步骤
  • 万网官方网站深圳设计功能网站
  • 网站添加什么东西才能和用户体验软文广告是什么意思
  • html网站首页设计正常做网站多少钱
  • 神经网络(①MNIST 手写数字识别)
  • 汕头智能模板建站网站建设需求分析报告
  • HAProxy实验步骤
  • 语义分割Semantic segmentation
  • strace / ltrace / ptrace / ftrace
  • 免费自建网站步骤天津工程造价信息网
  • AI+内容工作坊破解企业内容生产与AI落地难题
  • C++基础(22)——模板的进阶
  • 建站公司外包西安网站建设哪个平台好
  • SQL 面试经典:如何用 CASE WHEN 实现分组统计?
  • wnmp搭建后怎么做网站在线书店网站怎么做
  • 详细案例说明AI所用的算法,列出公式,用Python代码说明用法
  • 后端直接返回错误信息的Map 和 抛出异常(异常机制)优劣势对比