zoukankan      html  css  js  c++  java
  • std::set 使用

    #include <string>
    #include <cctype>
    #include <iostream>
    #include <set>
    
    struct caseInsensitiveLess
    {
      bool operator()(const std::string& x, const std::string& y)
      {
        unsigned int xs ( x.size() );
        unsigned int ys ( y.size() );
        unsigned int bound ( 0 );
    
        if ( xs < ys ) 
          bound = xs; 
        else 
          bound = ys;
    
        {
          unsigned int i = 0;
          for (auto it1 = x.begin(), it2 = y.begin(); i < bound; ++i, ++it1, ++it2)
          {
            if (tolower(*it1) < tolower(*it2))
              return true;
    
            if (tolower(*it2) < tolower(*it1))
              return false;
          }
        }
        return false; 
      }
    };
    
    int main()
    {
      std::set<std::string, caseInsensitiveLess> ss1;
      std::set<std::string> ss2;
    
      ss1.insert("This is the first string");
      ss1.insert("THIS IS THE FIRST STRING");
      ss1.insert("THIS IS THE SECOND STRING");
      ss1.insert("This IS THE SECOND STRING");
      ss1.insert("This IS THE Third");
    
      ss2.insert("this is the first string");
      ss2.insert("this is the first string");
      ss2.insert("this is the second string");
      ss2.insert("this is the second string");
      ss2.insert("this is the third");
    
      for ( auto& i: ss1 )
       std::cout << i << std::endl;
    
      std::cout << std::endl;
    
      for ( auto& i: ss2 )
       std::cout << i << std::endl;
    
    }
  • 相关阅读:
    json
    ajax
    oracle 分页查询
    NuGet使用
    【EF】Entity Framework使用
    【mssql】增删改查笔记
    【mysql】知识点
    【angularJS】学习笔记
    C# Ninject使用
    【CSS】Table样式
  • 原文地址:https://www.cnblogs.com/eaglezzb/p/4176482.html
Copyright © 2011-2022 走看看