第24講 set・sortによる並び替え 
第2話 setのサイズの取得とコピー
コードにさらにピンクを加えます。
#include<iostream>
#include<set>
#include<stdlib.h>
using namespace std;
int main(){
  set<int> s; //int型のセットsを宣言。sは配列に似ているが[]内添え字では制御できない。
  s.insert(5); //値の代入はinsertを使う。
  s.insert(2);
  s.insert(7);
  s.insert(3);
  s.insert(8);
  set<int>::iterator i; //セットの制御にはイテレータを使う。
  for(i=s.begin();i!=s.end();i++)cout<<*i<<" "; //ポインタの使い方に似ている。
  cout<<endl;
  int a;
  a=s.size();
  cout<<"セットのサイズ"<<a<<endl;

}
入門
s.size()でセットsのサイズを取得できます。
さらに、のコードを付け加えます。
#include<iostream>
#include<set>
#include<stdlib.h>
using namespace std;
int main(){
  set<int> s; //int型のセットsを宣言。sは配列に似ているが[]内添え字では整序できない。
  s.insert(5); //値の代入はinsertを使う。
  s.insert(2);
  s.insert(7);
  s.insert(3);
  s.insert(8);
  set<int>::iterator i; //セットの制御にはイテレータを使う。
  for(i=s.begin();i!=s.end();i++)cout<<*i<<" "; //ポインタの使い方に似ている。
  cout<<endl;
  int a;
  a=s.size();
  cout<<"セットのサイズ:"<<a<<endl;
  set<int> t(s);
  for(i=t.begin();i!=t.end();i++)cout<<*i<<" ";
  cout<<endl;

}
初心者
set<int> t(s);でセットsの内容をセットtにコピーできるわけです。
一つ言い落としました。
i=t.begin()などではセットのデータのアドレスを取得しますので、
その内容を表示するのに*iを使うわけです。

それでは皆さん、setを利用して並び替えの本格的なソフトを作りましょう。
現次元での最速は、最大値(最小値)排除繰り返し法シングルスレッドですが、
ライブラリにあるsetであるので、遙かに凌いで高速であることが予想されます。

第1話へ 第3話へ

戻る

C言語 C++講義第1部へ
C言語 C++講義第2部へ
VB講義へ
VB講義基礎へ

vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)