在 C++ 中检查向量的所有元素是否相等

2024-04-10

如果我有一个值向量并且想要检查它们是否都相同,那么在 C++ 中有效执行此操作的最佳方法是什么?如果我用其他语言(例如 R)进行编程,我的想法是仅返回容器的唯一元素,然后如果唯一元素的长度大于 1,我知道所有元素不可能相同。在 C++ 中,可以这样完成:

//build an int vector
std::sort(myvector.begin(), myvector.end());
std::vector<int>::iterator it;
//Use unique algorithm to get the unique values.
it = std::unique(myvector.begin(), myvector.end());
positions.resize(std::distance(myvector.begin(),it));
if (myvector.size() > 1) {
    std::cout << "All elements are not the same!" << std::endl;
}

然而,在互联网上阅读,我看到其他答案,例如使用set or the find_if算法。那么最有效的方法是什么?为什么?我想我的方法不是最好的方法,因为它涉及对每个元素进行排序,然后调整向量的大小 - 但也许我错了。


你不需要使用std::sort。可以用更简单的方式完成:

if ( std::adjacent_find( myvector.begin(), myvector.end(), std::not_equal_to<>() ) == myvector.end() )
{
    std::cout << "All elements are equal each other" << std::endl;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C++ 中检查向量的所有元素是否相等 的相关文章

随机推荐

  • 不确定 openmp 循环中应该共享或私有什么

    我有一个更新矩阵 A 的循环 我想将其设为 openmp 但我不确定哪些变量应该共享和私有 我本以为只有 ii 和 jj 就可以工作 但事实并非如此 我想我也需要在某个地方进行 OMP ATOMIC UPDATE 该循环仅计算 N 和 N
  • 为什么我收到“参数从未使用过 [E0392]”?

    我正在尝试用 Rust 实现八叉树 八叉树在类型上是通用的 但有一个约束 即它应该实现通用特征 pub trait Generable u fn generate children self data U gt Vec u
  • QGraphicsItem移动事件-获取绝对位置

    我有一个QGraphicsEllipseItem我想要移动并在移动时触发信号 所以我子类化了QGraphicsEllipseItem and QObject并覆盖了itemChange方法来触发信号 这一切似乎都有效 但报告的位置似乎与该项
  • TWA - 数字资产链接正常,但地址栏仍然可见

    我开发了一个渐进式 Web 应用程序 我想将其作为可信 Web 活动在 Play 商店中发布 它是https www bagnoadriatico it https www bagnoadriatico it 遵循本指南https deve
  • 后退按钮文本没有改变

    对于我的视图控制器之一 扩展 UITableViewController 我需要将其后退按钮文本配置为 后退 但后退按钮仍然显示父视图控制器的标题 默认 void viewDidLoad self navigationItem backBa
  • Windows 编译器上的 timespec

    在 posix 上 可以使用 timespec 来计算准确的时间长度 如秒和毫秒 不幸的是 我需要使用 Visual Studio 编译器迁移到 Windows VS time h 库没有声明 timespec 所以我正在寻找其他选项 就搜
  • 企业库验证块的 Asp.Net MVC 2 客户端验证实现

    我找到了一个非常好的文章 http bradwilson typepad com blog 2009 10 enterprise library validation example for aspnet mvc 2 html关于如何在 M
  • TCP 代理:在后端不可用时保持连接

    在 Docker 设置的上下文中 我想使用类似大使的模式来允许某些容器 例如数据库服务器 正常重新启动 而不必重新启动所有依赖的容器 例如 Web 服务器 并且没有错误消息 因为 数据库服务器不可用 因此 我想知道 是否有一个 TCP 代理
  • Android - 在运行时更改自定义标题视图

    我在应用程序中为每个活动使用自定义标题视图 在其中一项活动中 根据按钮点击 我需要更改自定义标题视图 现在 每次我调用 setFeatureInt 时 这都可以正常工作 但是 如果我尝试更新自定义标题中的任何项目 例如更改标题上的按钮文本或
  • Swift 3 需要更多信息来推断参数?

    我有一个向上冒泡的延伸部分 但在 Swift 3 中 无法推断通用参数 T public extension UIResponder public func next
  • QCustomPlot - 在 QCPAxisRect 上显示 customPlot 下方的项目

    在一个类似的项目中QCustomPlot 财务演示 http qcustomplot com index php demos financialchartsdemo我不仅想在图表区域中绘制一个 QCPItemRect 还想在图表下方的区域中
  • django:在多表继承中遵循向后到子类的关系

    我欢迎任何有关我的问题的帮助 我试图在多表继承情况下将关系向后跟踪到子类 IE 我想要一个特定州所有餐馆的查询集 这是我的问题的一个简化示例 对 django 文档中的eg进行修改 from django db import models
  • 如何获取 PHP 中的 Subversion 修订号?

    我想让我的 PHP 应用程序标有它使用的修订号 但我不想使用巡航控制 http en wikipedia org wiki CruiseControl或每次更新文件并上传 我该怎么做呢 SVN关键字并不是一个好的解决方案 正如其他人指出的那
  • 使用 javascript 创建一个新的空文档

    我正在使用一些非常不直观的 xml 所有标签都是 TX H VC 我想复制这些数据 但将所有标签重命名为它们的实际含义 我可以创建一个新的空文档来放入新的 命名良好的标签吗 我试过这个 doc new DOMParser parseFrom
  • Android:如何将先前的 Activity Intent 传递到列表视图中

    我有两项活动 Activity A Activity B In Activity A我有一个EditText Button and Image View And in 活动B我有一个Listview和 listView 视图包含 Custo
  • Sql 优化:Xml 或分隔字符串

    希望这只是一个简单的问题 涉及 Sql 2008 中的查询时的性能优化 我曾在一些公司工作过 这些公司在 ETL 流程以及一些网站中大量使用存储过程 我见过这样的场景 他们需要根据一组有限的键值检索特定记录 我已经看到它以 3 种不同的方式
  • Firebase 在服务器配置中不断抛出 OAuth2 客户端 ID 未找到

    我正在尝试使用 Firebase 将我的 Google 用户登录到我的应用程序 但每次使用以下方法时 都会收到此错误 An internal error has occured OAuth2 client id in server conf
  • 将 aar 文件发布到 Maven Central,Gradle 不起作用

    将 aar 文件发布到 Maven Central Gradle 仍然无法工作 好吧 让我们重复我遵循的所有步骤来设法 使用 Gradle 将 aar 文件发布到 Maven Central 我主要遵循这个guide https githu
  • 是否可以重定向用户以启动扫描仪应用程序?

    我正在编写一个应用程序来显示上传的文档python3 django 1 8 1 我们还希望允许用户扫描文档 如您所知 javascript 中有一个打印对话框 window print 浏览器是否支持扫描文档 是否可以使用 javascri
  • 在 C++ 中检查向量的所有元素是否相等

    如果我有一个值向量并且想要检查它们是否都相同 那么在 C 中有效执行此操作的最佳方法是什么 如果我用其他语言 例如 R 进行编程 我的想法是仅返回容器的唯一元素 然后如果唯一元素的长度大于 1 我知道所有元素不可能相同 在 C 中 可以这样