C++ unordered_set::count() 函式



C++ 的 std::unordered_set::count() 函式用於統計 unordered_set 容器中特定元素或指定鍵 k 的數量。它不接受任何重複值,因此如果鍵存在於集合中,則返回 1,否則返回 0。

unordered_set 是一個關聯容器,包含一組型別為鍵的唯一物件。unordered_set 中的每個操作(如插入、搜尋和刪除)都具有常數時間複雜度。

語法

以下是 std::unordered_set::count() 函式的語法。

size_type count ( const key_type& k ) const;

引數

  • k - 表示要搜尋的元素。

返回值

如果在 unordered_set 容器中找到與 k 值等效的元素,則返回 1,否則返回零。

示例 1

讓我們看看下面的示例,我們將演示 count() 函式的使用。

#include <iostream>
#include <string>
#include <unordered_set>

int main () {
   std::unordered_set<std::string> myset = { "sairam", "krishna", "prasad" };
   for (auto& x: {"tutorialspoint","sairam","krishna","t-shirt"}) {
      if (myset.count(x)>0)
         std::cout << "myset has " << x << std::endl;
      else
         std::cout << "myset has no " << x << std::endl;
   }
   return 0;
}

輸出

讓我們編譯並執行以上程式,這將產生以下結果:

myset has no tutorialspoint
myset has sairam
myset has krishna
myset has no t-shirt

示例 2

考慮下面的示例,我們將使用整數型別的 unordered_set,並檢查元素是否存在。

#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;

int main () {
   unordered_set<int> myUset = { 10, 20, 30, 50, 60 };
   cout<<"following is the element of the unordered_set!"<<endl;
   for(auto it:myUset){
      cout<<it<<endl;
   }
   cout<<"is 10 present in the set: "<<myUset.count(20)<<endl;
   cout<<"is 70 present in the set: "<<myUset.count(70)<<endl;
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

following is the element of the unordered_set!
60
50
30
20
10
is 10 present in the set: 1
is 70 present in the set: 0

示例 3

在下面的示例中,我們將使用字串型別的 unordered_set,並應用 count() 函式來檢查元素是否存在,並根據條件顯示 if 語句。

#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;

int main () {
   unordered_set<string> myUset = { "tutorialspoint", "India", "PVT", "LTD" };
   cout<<"following is the element of the unordered_set!"<<endl;
   for(auto it:myUset){
      cout<<it<<" ";
   }
   cout<<endl;
   
   if(myUset.count("tutorialspoint") == 1)
      cout<<"tutorialspoint is present in the set: "<<endl;
   else
      cout<<"tutorialspoint is not present in the set: "<<endl;
   return 0;
}

輸出

以下是以上程式碼的輸出:

following is the element of the unordered_set!
LTD PVT India tutorialspoint 
tutorialspoint is present in the set: 

示例 4

以下是使用字串型別 unordered_set 的 count() 函式的另一個示例,並檢查元素是否存在。

#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;

bool isPresent(string s, char ch) {
   unordered_set<char> set;

   for(int i=0; i<s.size(); i++){
      set.insert(s[i]);
   }
   if(set.count(ch) == 1){
      cout<<"char "<<ch<<" is present so it will print: ";
      return true;
   }
   
   cout<<"char "<<ch<<" is not present so it will print: ";
   return false;
}
int main() {
   cout << isPresent("tutorialspoint", 't') << '\n';
   return 0;
}

輸出

以上程式碼的輸出如下:

char t is present so it will print: 1
廣告

© . All rights reserved.