<bdo id='bGMOS'></bdo><ul id='bGMOS'></ul>

    <i id='bGMOS'><tr id='bGMOS'><dt id='bGMOS'><q id='bGMOS'><span id='bGMOS'><b id='bGMOS'><form id='bGMOS'><ins id='bGMOS'></ins><ul id='bGMOS'></ul><sub id='bGMOS'></sub></form><legend id='bGMOS'></legend><bdo id='bGMOS'><pre id='bGMOS'><center id='bGMOS'></center></pre></bdo></b><th id='bGMOS'></th></span></q></dt></tr></i><div id='bGMOS'><tfoot id='bGMOS'></tfoot><dl id='bGMOS'><fieldset id='bGMOS'></fieldset></dl></div>

    <small id='bGMOS'></small><noframes id='bGMOS'>

    <legend id='bGMOS'><style id='bGMOS'><dir id='bGMOS'><q id='bGMOS'></q></dir></style></legend>
    <tfoot id='bGMOS'></tfoot>
      1. 在 C++ 中检查向量的所有元素是否相等

        时间:2023-09-15

        <small id='aIKGH'></small><noframes id='aIKGH'>

          <tbody id='aIKGH'></tbody>

          • <legend id='aIKGH'><style id='aIKGH'><dir id='aIKGH'><q id='aIKGH'></q></dir></style></legend>
              <i id='aIKGH'><tr id='aIKGH'><dt id='aIKGH'><q id='aIKGH'><span id='aIKGH'><b id='aIKGH'><form id='aIKGH'><ins id='aIKGH'></ins><ul id='aIKGH'></ul><sub id='aIKGH'></sub></form><legend id='aIKGH'></legend><bdo id='aIKGH'><pre id='aIKGH'><center id='aIKGH'></center></pre></bdo></b><th id='aIKGH'></th></span></q></dt></tr></i><div id='aIKGH'><tfoot id='aIKGH'></tfoot><dl id='aIKGH'><fieldset id='aIKGH'></fieldset></dl></div>

                • <bdo id='aIKGH'></bdo><ul id='aIKGH'></ul>

                  <tfoot id='aIKGH'></tfoot>
                  本文介绍了在 C++ 中检查向量的所有元素是否相等的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

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

                  If I have a vector of values and want to check that they are all the same, what is the best way to do this in C++ efficiently? If I were programming in some other language like R one way my minds jumps to is to return only the unique elements of the container and then if the length of the unique elements is more than 1, I know all the elements cannot be the same. In C++ this can be done like this:

                  //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;
                  }
                  

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

                  However reading on the internet and SO, I see other answers such using a set or the find_if algorithm. So what is the most efficient way of doing this and why? I imagine mine is not the best way since it involves sorting every element and then a resizing of the vector - but maybe I'm wrong.

                  推荐答案

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

                  You need not to use std::sort. It can be done in a simpler way:

                  if ( std::adjacent_find( myvector.begin(), myvector.end(), std::not_equal_to<>() ) == myvector.end() )
                  {
                      std::cout << "All elements are equal each other" << std::endl;
                  }
                  

                  这篇关于在 C++ 中检查向量的所有元素是否相等的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:对结构向量进行排序 下一篇:将 C++ 向量读取和写入文件

                  相关文章

                  最新文章

                  <i id='7F8Mt'><tr id='7F8Mt'><dt id='7F8Mt'><q id='7F8Mt'><span id='7F8Mt'><b id='7F8Mt'><form id='7F8Mt'><ins id='7F8Mt'></ins><ul id='7F8Mt'></ul><sub id='7F8Mt'></sub></form><legend id='7F8Mt'></legend><bdo id='7F8Mt'><pre id='7F8Mt'><center id='7F8Mt'></center></pre></bdo></b><th id='7F8Mt'></th></span></q></dt></tr></i><div id='7F8Mt'><tfoot id='7F8Mt'></tfoot><dl id='7F8Mt'><fieldset id='7F8Mt'></fieldset></dl></div>
                • <legend id='7F8Mt'><style id='7F8Mt'><dir id='7F8Mt'><q id='7F8Mt'></q></dir></style></legend>

                    <tfoot id='7F8Mt'></tfoot>
                  1. <small id='7F8Mt'></small><noframes id='7F8Mt'>

                    • <bdo id='7F8Mt'></bdo><ul id='7F8Mt'></ul>