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

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

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

        <tfoot id='akqc8'></tfoot>

        在成对的向量中按键查找成对

        时间:2023-10-07
      1. <tfoot id='tmHLF'></tfoot>
        • <small id='tmHLF'></small><noframes id='tmHLF'>

          <legend id='tmHLF'><style id='tmHLF'><dir id='tmHLF'><q id='tmHLF'></q></dir></style></legend>

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

                1. 本文介绍了在成对的向量中按键查找成对的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我想对成对的向量调用 find 函数.在调用 find 函数时,我只有搜索的关键字.

                  I want to call the find function on a vector of pairs. At the time the find function is called I only have the key to search by.

                  我的理解是我需要将一个函数作为参数传递给 find 来为我做比较,但我找不到合适的例子.

                  My understanding is that I need to pass a function into find as an argument to do the comparison for me but I can't find a proper example.

                  我在与地图容器相对的向量中对对进行排序的原因是因为我希望能够在填充过程之后按值对对进行排序.

                  The reason I'm sorting the pairs within a vector opposed to a map container is because I want to be able to sort the pairs by value after the population process.

                      vector< pair<string, int> > sortList;
                      vector< pair<string, int> >::iterator it;
                  
                      for(int i=0; i < Users.size(); i++)
                      {
                          it = find( sortList.begin(), sortList.end(), findVal(Users.userName) );
                  
                          //Item exists in map
                          if( it != sortList.end())
                          {
                              //increment key in map
                              it->second++;
                          }
                          //Item does not exist
                          else
                          {
                              //Not found, insert in map
                              sortList.push_back( pair<string,int>(Users.userName, 1) );
                          }
                      }
                  
                      //Sort the list
                  
                      //Output 
                  

                  findVal 上的实现对我来说是模糊区域.我也愿意接受更好的逻辑实现方式.

                  The implementation on findVal is the fuzzy area for me. I'd also be open to better ways of implementing the logic.

                  推荐答案

                  你不需要使用find,请使用find_if,这是链接:http://www.cplusplus.com/reference/algorithm/find_if/

                  you don't need use find, please use find_if, this is the link:http://www.cplusplus.com/reference/algorithm/find_if/

                  auto it = std::find_if( sortList.begin(), sortList.end(),
                      [&User](const std::pair<std::string, int>& element){ return element.first == User.name;} );
                  

                  如果您在 C++11 之前使用 C++ 标准,那么以后您将需要一个函数而不是 lambda:

                  If you are using C++ standard before C++11, later, you'll need a function instead of a lambda:

                  bool isEqual(const std::pair<std::string, int>& element)
                  {
                      return element.first ==  User.name;
                  }
                  it = std::find_if( sortList.begin(), sortList.end(), isEqual );
                  

                  这篇关于在成对的向量中按键查找成对的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:调整 C++ std::vector<char> 的大小无需初始化数据 下一篇:依赖范围;前面需要typename;

                  相关文章

                  最新文章

                2. <tfoot id='LBbTU'></tfoot>
                3. <legend id='LBbTU'><style id='LBbTU'><dir id='LBbTU'><q id='LBbTU'></q></dir></style></legend>

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

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

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