C++ STL set/multset
1.set 용기 에서 요소 유형 은 기본 유형 입 니 다.어떻게 set 를 사용자 의 뜻 에 따라 정렬 합 니까?
2.set 용기 에서 요소 형식 을 사용자 정의 형식 으로 어떻게 합 니까?
3.set 용기 의 insert 함수 의 반환 값 은 왜 유형 입 니까?
#include
#include
#include
using namespace std;
/* CompareSet, test02 */
class CompareSet
{
public:
//
bool operator()(int v1, int v2)
{
return v1 > v2;
}
//
//bool operator()(int v1, int v2)
//{
// return v1 < v2;
//}
};
/* Person , test03 */
class Person
{
friend ostream &operator<const Person &person);
public:
Person(string name, int age)
{
mName = name;
mAge = age;
}
public:
string mName;
int mAge;
};
ostream &operator<const Person &person)
{
out << "name:" << person.mName << " age:" << person.mAge << endl;
return out;
}
/* ComparePerson, test03 */
class ComparePerson
{
public:
// , ,
bool operator()(const Person &p1, const Person &p2)
{
if (p1.mName == p2.mName)
{
return p1.mAge > p2.mAge;
}
return p1.mName > p2.mName;
}
};
/* set */
template<typename T>
void PrintSet(T &s)
{
for (T::iterator iter = s.begin(); iter != s.end(); ++iter)
cout << *iter << " ";
cout << endl;
}
void test01()
{
//set
set<int> s;
s.insert(10);
s.insert(20);
s.insert(30);
// set
PrintSet(s);
// :10 20 30
/* set insert (pair)。
first set :
1、 , 。
2、 ,
seconde bool :
1、 ,bool true
2、 ,bool false
*/
pair<set<int>::iterator, bool> ret = s.insert(40);
if (true == ret.second)
cout << *ret.first << " " << endl;
else
cout << *ret.first << " " << endl;
}
void test02()
{
/* set , set
, CompareSet
*/
set<int, CompareSet> s;
s.insert(10);
s.insert(20);
s.insert(30);
// set
PrintSet(s);
// :30,20,10
}
void test03()
{
/* set Person, set
set , ,
*/
set s;
s.insert(Person("John", 22));
s.insert(Person("Peter", 25));
s.insert(Person("Marry", 18));
s.insert(Person("Peter", 36));
// set
PrintSet(s);
}
int main(void)
{
//test01();
//test02();
//test03();
return 0;
}
set
다음 코드 와 관련 된 내용:
1.multiset 용기 의 insert 함수 반환 값 은 왜 입 니까?
#include
#include
using namespace std;
/* set */
template<typename T>
void PrintSet(T &s)
{
for (T::iterator iter = s.begin(); iter != s.end(); ++iter)
cout << *iter << " ";
cout << endl;
}
void test(void)
{
multiset<int> s;
s.insert(10);
s.insert(20);
s.insert(30);
// multiset
PrintSet(s);
/* multiset insert multiset ,
。multiset ,
, bool 。
*/
multiset<int>::iterator iter = s.insert(10);
cout << *iter << endl;
}
int main(void)
{
test();
return 0;
}
multiset
**set 구조 함수 기능**
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STL 유용한 함수 모음정렬 정렬 기준 정하기 : 세번째 인자로 정의한 함수 특정 변수를 기준으로 정렬 : pair 이용 정렬 기준 두 개일 때 : 이중 pair 이용 문자열 처리 문자열 뒤집기 문자열에서 특정 문자 찾기 배열 자리 바꾸기...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.