C++ set size() 使用方法及示例

C++ STL Set(集合)

C ++ set size()函数用于查找set容器中存在的元素数。

语法

成员类型size_type是无符号整数类型。

size_type size() const;               // C++ 11 之前
size_type size() const noexcept;    //从 C++ 11开始

参数

没有

返回值

它返回集合中存在的元素数。

复杂

不变。

迭代器有效性

没有变化。

数据争用

容器被访问。

同时访问集合的元素是安全的。

异常安全

此函数永远不会引发异常。

实例1

让我们看一个简单的实例来计算集合的大小:

#include <set>
#include <iostream>
using namespace std;
 
int main()
{ 
    set<char> num {'a', 'b', 'c', 'd'}; 
    cout << "num集合包含 " << num.size() << " 元素.\n";
    return 0;
}

输出:

 num集合包含 4 元素.

在上面的示例中,set num集合包含4个元素。因此,size()返回4个元素。

实例2

让我们看一个简单的示例来计算集合的初始大小和添加元素后的集合大小:

#include <iostream>
#include <set>

using namespace std;

int main(void) {
   set<int> m;

   cout << "set集合的初始大小 = " << m.size() << endl;

   m = {1,2,3,4,5,6};

     cout << "插入元素后集合的大小 = " << m.size() << endl;

   return 0;
}

输出:

set集合的初始大小 = 0
插入元素后集合的大小 = 6

在上面的示例中,第一个集合为空,因此,size()函数将返回0,在插入6个元素后将返回6。

实例3

while循环中使用size()函数:

#include <iostream>
#include <set>

using namespace std;

int main ()
{
  set<int> myset = {100,200,300,400};

  while (myset.size())
  {
    cout << *myset.begin()<< '\n';
    myset.erase(myset.begin());
  }

  return 0;
}

输出:

100
200
300
400

在上面的示例中,它仅在while循环中使用size()函数并打印set的元素,直到set的大小为止。

实例4

让我们看一个示例,根据用户交互输入数来计算集合大小:

#include <iostream>
#include <set>
#include <string>

using namespace std;

int main() {

  typedef set<int> marksSet;
   
   int number;
   marksSet marks;

   cout<<"输入三组标记: \n";
   
   for(int i =0; i<3; i++)
   {
       cin>> number;    // 输入号码
       marks.insert(number);   // 将输入插入集合
   }
   
      cout<<"\n电话集合大小为:"<< marks.size();
      cout<<"\n电话号码列表: \n";
      marksSet::iterator p;
      for(p = marks.begin(); p!=marks.end(); p++)
      {
          cout<<(*p)<<" \n ";
      }
    
   return 0;
}

输出:

输入三组标记: 
78 90 84

电话集合大小为: 3
电话号码列表: 
78 
 84 
 90

在上面的示例中,程序首先创建交互式设置的标记。然后,它将显示标记集的总大小以及该集合中所有可用的元素。

C++ STL Set(集合)