Set 컬렉션 컨테이너

5422 단어 set
1. set 집합 용기 set 집합 대상 만들기
 
// set       

#include<iostream>

#include<string.h>

#include<stdio.h>

#include<ctype.h>

#include<algorithm>

#include<stack>

#include<queue>

#include<set>

#include<math.h>

#include<vector>

using namespace std;

int main()

{

	set<int>s;

	return 0;

}


2. set 집합 용기 요소의 삽입과 중간 순서 반복
// insert()       

//set( )—— , (value) 。

#include<iostream>

#include<string.h>

#include<stdio.h>

#include<ctype.h>

#include<algorithm>

#include<stack>

#include<queue>

#include<set>

#include<math.h>

#include<vector>

using namespace std;

int main()

{

    set<int> s;

    int n;

    int m;

    while(scanf("%d",&n)!=EOF)

    {

        for(int i=0; i<n; i++)

        {

            scanf("%d",&m);

            s.insert(m);

        }

        set<int>::iterator p;

        for(p=s.begin(); p!=s.end(); p++)

        {

            cout<<*p<<" ";

        }

    }

    return 0;

}


 
3. set 집합 용기 요소의 역방향 반복
// reverse_iterator ,   rbegin() rend()  



#include<iostream>

#include<string.h>

#include<stdio.h>

#include<ctype.h>

#include<algorithm>

#include<stack>

#include<queue>

#include<set>

#include<math.h>

#include<vector>

using namespace std;

int main()

{

    set<int> s;

    s.insert(12);

    s.insert(6);

    s.insert(8);

    s.insert(1);

    s.insert(8);

    set<int>::reverse_iterator p;

    for(p=s.rbegin(); p!=s.rend(); p++)

    {

        cout<<*p<<" ";

    }

    return 0;

}


 
4.set 집합 용기 요소의 삭제
//           

#include<iostream>

#include<string.h>

#include<stdio.h>

#include<ctype.h>

#include<algorithm>

#include<stack>

#include<queue>

#include<set>

#include<math.h>

#include<vector>

using namespace std;

int main()

{

    set<int> s;

    s.insert(12);

    s.insert(6);

    s.insert(8);

    s.insert(1);

    s.insert(8);

    set<int>::reverse_iterator rit;

    for(rit=s.rbegin(); rit!=s.rend(); rit++)

    {

        cout<<*rit<<" ";

    }

    cout<<endl;

    s.erase(6);

    for(rit=s.rbegin(); rit!=s.rend(); rit++)

    {

        cout<<*rit<<" ";

    }

    cout<<endl;

    s.erase(s.begin());

    for(rit=s.rbegin(); rit!=s.rend(); rit++)

    {

        cout<<*rit<<" ";

    }

    cout<<endl;

    s.clear();

    cout<<s.size()<<endl;

    return 0;

}


 
5.set 집합 용기 요소의 검색
// find()         end()

#include<iostream>

#include<string.h>

#include<stdio.h>

#include<ctype.h>

#include<algorithm>

#include<stack>

#include<queue>

#include<set>

#include<math.h>

#include<vector>

using namespace std;

int main()

{

    set<int> s;

    s.insert(12);

    s.insert(6);

    s.insert(8);

    s.insert(1);

    s.insert(8);

    set<int>::iterator it;

    it=s.find(6);

    if(it!=s.end())

        cout<<*it<<endl;

    else cout<<"not find it!"<<endl;

    it=s.find(20);

    if(it!=s.end())

        cout<<*it<<endl;

    else cout<<"not find it!"<<endl;

    return 0;

}


 
6, set 집합 용기 사용자 정의 비교 함수
// 

#include<iostream>

#include<string.h>

#include<stdio.h>

#include<ctype.h>

#include<algorithm>

#include<stack>

#include<queue>

#include<set>

#include<math.h>

#include<vector>

using namespace std;

struct N

{

    bool operator()(int m,int n)

    {

        return m>n;

    }

};

int main()

{

	int n;

	int m;

	set<int,N>s;

	while(scanf("%d",&n)!=EOF)

	{

	    for(int i=0;i<n;i++)

	    {

	        scanf("%d",&m);

	        s.insert(m);

	    }

	    set<int,N>::iterator p;

	    for(p=s.begin();p!=s.end();p++)

	    cout<<*p<<" ";

	    cout<<endl;

	}

	return 0;

}

// 

#include<iostream>

#include<string.h>

#include<stdio.h>

#include<ctype.h>

#include<algorithm>

#include<stack>

#include<queue>

#include<set>

#include<math.h>

#include<vector>

using namespace std;

struct N

{

    string name;

    double grade;

    bool operator<(const N&a)const

    {

        return grade>a.grade;

    }

};

int main()

{

    int n;

    set<N>s;

    int m;

    N a;

    while(scanf("%d",&n)!=EOF)

    {

        for(int i=0; i<n; i++)

        {

            cin>>a.name>>a.grade;

            s.insert(a);

        }

        set<N>::iterator p;

        for(p=s.begin(); p!=s.end(); p++)

            cout<<(*p).name<<" "<<(*p).grade<<endl;

    }

    return 0;

}


 
 
 

좋은 웹페이지 즐겨찾기