分享一些c++案例
str简介
容器算法迭代器初识
# include <iostream>
using namespace std;
# include <vector>
# include <algorithm>
void myPrint ( int val)
{
cout<< val<< endl;
}
void test01 ( )
{
vector< int > v;
v. push_back ( 10 ) ;
v. push_back ( 20 ) ;
v. push_back ( 30 ) ;
v. push_back ( 40 ) ;
for_each ( v. begin ( ) , v. end ( ) , myPrint) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
容器中存放自定义类型
# include <iostream>
using namespace std;
# include <vector>
# include <string>
class Person
{
public :
Person ( string name, int age)
{
this -> m_Name= name;
this -> m_Age= age;
}
string m_Name;
int m_Age;
} ;
void test01 ( )
{
vector< Person> v;
Person p1 ( "aaa" , 10 ) ;
Person p2 ( "bbb" , 20 ) ;
Person p3 ( "ccc" , 30 ) ;
Person p4 ( "ddd" , 40 ) ;
Person p5 ( "eee" , 50 ) ;
v. push_back ( p1) ;
v. push_back ( p2) ;
v. push_back ( p3) ;
v. push_back ( p4) ;
v. push_back ( p5) ;
for ( vector< Person> :: iterator it= v. begin ( ) ; it!= v. end ( ) ; it++ )
{
cout<< "姓名: " << it-> m_Name<< " 年龄" << it-> m_Age<< endl;
}
}
void test02 ( )
{
vector< Person* > v;
Person p1 ( "aaa" , 10 ) ;
Person p2 ( "bbb" , 20 ) ;
Person p3 ( "ccc" , 30 ) ;
Person p4 ( "ddd" , 40 ) ;
Person p5 ( "eee" , 50 ) ;
v. push_back ( & p1) ;
v. push_back ( & p2) ;
v. push_back ( & p3) ;
v. push_back ( & p4) ;
v. push_back ( & p5) ;
for ( vector< Person* > :: iterator it= v. begin ( ) ; it!= v. end ( ) ; it++ )
{
cout<< "姓名:" << ( * it) -> m_Name<< "年龄:" << ( * it) -> m_Age<< endl;
}
}
int main ( )
{
test02 ( ) ;
system ( "pause" ) ;
return 0 ;
}
简单评委打分
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
using namespace std;
class Person
{
public :
Person ( string name, int score)
{
this -> m_Name= name;
this -> m_Score= score;
}
string m_Name;
int m_Score;
} ;
void creatPerson ( vector< Person> & v)
{
string nameSeed= "ABCDE" ;
for ( int i= 0 ; i< 5 ; i++ )
{
string name= "选手" ;
name+= nameSeed[ i] ;
int score= 0 ;
Person p ( name, score) ;
v. push_back ( p) ;
}
}
int main ( )
{
vector< Person> v;
creatPerson ( v) ;
for ( vector< Person> :: iterator it= v. begin ( ) ; it!= v. end ( ) ; it++ )
{
cout<< "姓名为" << it-> m_Name<< "分数为" << it-> m_Score<< endl;
}
system ( "pause" ) ;
return 0 ;
}
容器嵌套容器
# include <iostream>
using namespace std;
# include <vector>
void test01 ( )
{
vector< vector< int >> v;
vector< int > v1;
vector< int > v2;
vector< int > v3;
vector< int > v4;
for ( int i= 0 ; i< 4 ; i++ )
{
v1. push_back ( i+ 1 ) ;
v2. push_back ( i+ 2 ) ;
v3. push_back ( i+ 3 ) ;
v4. push_back ( i+ 4 ) ;
}
v. push_back ( v1) ;
v. push_back ( v2) ;
v. push_back ( v3) ;
v. push_back ( v4) ;
for ( vector< vector< int >> :: iterator it = v. begin ( ) ; it != v. end ( ) ; it++ )
{
for ( vector< int > :: iterator vit= ( * it) . begin ( ) ; vit!= ( * it) . end ( ) ; vit++ )
{
cout<< * vit<< " " ;
}
cout<< endl;
}
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
map容器的插入和删除
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
# include <map>
# include <ctime>
using namespace std;
void printMap ( map< int , int > & m)
{
for ( map< int , int > :: iterator it= m. begin ( ) ; it!= m. end ( ) ; it++ )
{
cout<< "key=" << it-> first<< "value=" << it-> second<< endl;
}
cout<< endl;
}
void test01 ( )
{
map< int , int > m;
m. insert ( pair < int , int > ( 1 , 10 ) ) ;
m. insert ( make_pair ( 2 , 20 ) ) ;
m. insert ( map < int , int > :: value_type ( 3 , 30 ) ) ;
m[ 4 ] = 40 ;
printMap ( m) ;
m. erase ( m. begin ( ) ) ;
printMap ( m) ;
m. erase ( 3 ) ;
printMap ( m) ;
m. erase ( m. begin ( ) , m. end ( ) ) ;
printMap ( m) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
map容器的查找和统计
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
# include <map>
# include <ctime>
using namespace std;
void test01 ( )
{
map< int , int > m;
m. insert ( pair < int , int > ( 1 , 10 ) ) ;
m. insert ( make_pair ( 2 , 20 ) ) ;
m. insert ( pair < int , int > ( 3 , 30 ) ) ;
m. insert ( pair < int , int > ( 4 , 40 ) ) ;
map< int , int > :: iterator pos= m. find ( 3 ) ;
if ( pos!= m. end ( ) )
{
cout<< "查到了元素key=" << pos-> first<< "value=" << ( * pos) . second<< endl;
}
else
{
cout<< "没有查找到" << endl;
}
int num= m. count ( 3 ) ;
cout<< "num=" << num<< endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
容器排序
# include <iostream>
# include <map>
using namespace std;
class MyCompare
{
public :
bool operator ( ) ( int v1, int v2)
{
return v1> v2;
}
} ;
void test01 ( )
{
map< int , int , MyCompare> m;
m. insert ( make_pair ( 1 , 10 ) ) ;
m. insert ( make_pair ( 2 , 20 ) ) ;
m. insert ( make_pair ( 3 , 30 ) ) ;
m. insert ( make_pair ( 4 , 40 ) ) ;
m. insert ( make_pair ( 5 , 50 ) ) ;
for ( map< int , int , MyCompare> :: iterator it= m. begin ( ) ; it!= m. end ( ) ; it++ )
{
cout<< "key=" << it-> first<< "value=" << it-> second<< endl;
}
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
string基本概念
# include <iostream>
using namespace std;
# include <string>
void test01 ( )
{
string s1;
const char * str= "hello world" ;
string s2 ( str) ;
cout<< "s2=" << s2<< endl;
string s3 ( s2) ;
cout<< "s3=" << s3<< endl;
string s4 ( 10 , 'a' ) ;
cout<< "s4=" << s4<< endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
string赋值
# include <iostream>
using namespace std;
# include <string>
void test01 ( )
{
string str1;
str1= "hello world" ;
cout<< "str1=" << str1<< endl;
string str2;
str2= str1;
cout<< "str2=" << str2<< endl;
string str3;
str3= 'a' ;
cout<< "str3=" << str3<< endl;
string str4;
str4. assign ( "hello c++" ) ;
cout<< "str4=" << str4<< endl;
string str5;
str5. assign ( "hello c++" , 5 ) ;
cout<< "str5=" << str5<< endl;
string str6;
str6. assign ( str5) ;
cout<< "str6=" << str6<< endl;
string str7;
str7. assign ( 10 , 'w' ) ;
cout<< "str7=" << str7<< endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
string字符串拼接
# include <iostream>
using namespace std;
# include <string>
void test01 ( )
{
string str1= "我" ;
str1+= "爱玩游戏" ;
cout<< "str1" << str1<< endl;
str1+= ':' ;
cout<< "str1" << str1<< endl;
string str2= "LOL DNF" ;
str1+= str2;
cout<< "str1" << str1<< endl;
string str3= "I" ;
str3. append ( "love" ) ;
cout<< "str3=" << str3<< endl;
str3. append ( "game abcde" , 4 ) ;
cout<< "str3=" << str3<< endl;
str3. append ( str2, 4 , 3 ) ;
cout<< "str3=" << str3<< endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
string查找和转换
# include <iostream>
using namespace std;
# include <string>
void test01 ( )
{
string str1= "abcdefgde" ;
int pos= str1. find ( "de" ) ;
if ( pos== - 1 )
{
cout<< "未找到字符串" << endl;
}
else
{
cout<< "找到字符串,pos=" << pos<< endl;
}
pos= str1. rfind ( "de" ) ;
cout<< "pos=" << pos<< endl;
}
void test02 ( )
{
string str1= "abcdefg" ;
str1. replace ( 1 , 3 , "1111" ) ;
cout<< "str1=" << str1<< endl;
}
int main ( )
{
test01 ( ) ;
test02 ( ) ;
system ( "pause" ) ;
return 0 ;
}
string字符串比较
# include <iostream>
using namespace std;
# include <string>
void test01 ( )
{
string str1= "xello" ;
string str2= "hello" ;
if ( str1. compare ( str2) == 0 )
{
cout<< "str1等于str2" << endl;
}
else if ( str1. compare ( str2) > 0 )
{
cout<< "str1大于str2" << endl;
}
else
{
cout<< "str1小于str2" << endl;
}
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
string字符存取
# include <iostream>
using namespace std;
# include <string>
void test01 ( )
{
string str= "hello" ;
for ( int i= 0 ; i< str. size ( ) ; i++ )
{
cout<< str[ i] << " " ;
}
cout<< endl;
for ( int i= 0 ; i< str. size ( ) ; i++ )
{
cout<< str. at ( i) << " " ;
}
cout<< endl;
str[ 0 ] = 'x' ;
cout<< "str=" << str<< endl;
str. at ( 1 ) = 'x' ;
cout<< "str=" << str<< endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
string的插入和删除
# include <iostream>
using namespace std;
# include <string>
void test01 ( )
{
string str= "hello" ;
str. insert ( 1 , "111" ) ;
cout<< "str=" << str<< endl;
str. erase ( 1 , 3 ) ;
cout<< "str=" << str<< endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
string字串
# include <iostream>
using namespace std;
# include <string>
void test01 ( )
{
string str= "abcdef" ;
string subStr= str. substr ( 1 , 3 ) ;
cout<< "subStr=" << subStr<< endl;
}
void test02 ( )
{
string email= "zhangsan@sina.com" ;
int pos= email. find ( "@" ) ;
cout<< "pos=" << pos<< endl;
string usrName= email. substr ( 0 , pos) ;
cout<< usrName<< endl;
}
int main ( )
{
test01 ( ) ;
test02 ( ) ;
system ( "pause" ) ;
return 0 ;
}
vector赋值操作
# include <iostream>
using namespace std;
# include <vector>
void printVector ( vector< int > & v)
{
for ( vector< int > :: iterator it= v. begin ( ) ; it!= v. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
vector< int > v1;
for ( int i= 0 ; i< 10 ; i++ )
{
v1. push_back ( i) ;
}
printVector ( v1) ;
vector< int > v2;
v2= v1;
printVector ( v2) ;
vector< int > v3;
v3. assign ( v1. begin ( ) , v1. end ( ) ) ;
printVector ( v3) ;
vector< int > v4;
v4. assign ( 10 , 100 ) ;
printVector ( v4) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
vector容量和大小
# include <iostream>
using namespace std;
# include <vector>
void printVector ( vector< int > & v)
{
for ( vector< int > :: iterator it= v. begin ( ) ; it!= v. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
vector< int > v1;
for ( int i= 0 ; i< 10 ; i++ )
{
v1. push_back ( i) ;
}
printVector ( v1) ;
if ( v1. empty ( ) )
{
cout<< "v1为空" << endl;
}
else
{
cout<< "v1不为空" << endl;
cout<< "v1的容量为" << v1. capacity ( ) << endl;
cout<< "v1的大小为" << v1. size ( ) << endl;
}
v1. resize ( 15 , 100 ) ;
printVector ( v1) ;
v1. resize ( 5 ) ;
printVector ( v1) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
vector插入和删除
# include <iostream>
using namespace std;
# include <string>
# include <vector>
void printVector ( vector< int > & v)
{
for ( vector< int > :: iterator it= v. begin ( ) ; it!= v. end ( ) ; it++ )
{ cout<< * it<< " " ; }
cout<< endl;
}
void test01 ( )
{
vector< int > v1;
v1. push_back ( 10 ) ;
v1. push_back ( 20 ) ;
v1. push_back ( 30 ) ;
v1. push_back ( 40 ) ;
v1. push_back ( 50 ) ;
printVector ( v1) ;
v1. pop_back ( ) ;
printVector ( v1) ;
v1. insert ( v1. begin ( ) , 100 ) ;
printVector ( v1) ;
v1. insert ( v1. begin ( ) , 2 , 1000 ) ;
printVector ( v1) ;
v1. erase ( v1. begin ( ) ) ;
printVector ( v1) ;
v1. clear ( ) ;
printVector ( v1) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
vector数据存取
# include <iostream>
# include <vector>
using namespace std;
void test01 ( )
{
vector< int > v1;
for ( int i= 0 ; i< 10 ; i++ )
{
v1. push_back ( i) ;
}
for ( int i= 0 ; i< v1. size ( ) ; i++ )
{
cout<< v1[ i] << " " ;
}
cout<< endl;
for ( int i= 0 ; i< v1. size ( ) ; i++ )
{
cout<< v1. at ( i) << " " ;
}
cout<< endl;
cout<< "获取第一个元素=" << v1. front ( ) << endl;
cout<< "最后一个元素=" << v1. back ( ) << endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
vector互换容器
# include <iostream>
# include <vector>
using namespace std;
void printVector ( vector< int > & v)
{
for ( vector< int > :: iterator it= v. begin ( ) ; it!= v. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
vector< int > v1;
for ( int i= 0 ; i< 10 ; i++ )
{
v1. push_back ( i) ;
}
cout<< "交换前" << endl;
printVector ( v1) ;
vector< int > v2;
for ( int i= 10 ; i> 0 ; i-- )
{
v2. push_back ( i) ;
}
printVector ( v2) ;
cout<< "交换后" << endl;
v1. swap ( v2) ;
printVector ( v1) ;
printVector ( v2) ;
}
void test02 ( )
{
vector< int > v;
for ( int i= 0 ; i< 100000 ; i++ )
{
v. push_back ( i) ;
}
cout<< "v的容量为" << v. capacity ( ) << endl;
cout<< "v的大小为" << v. size ( ) << endl;
v. resize ( 3 ) ;
cout<< "v的容量为" << v. capacity ( ) << endl;
cout<< "v的大小为" << v. size ( ) << endl;
vector < int > ( v) . swap ( v) ;
cout<< "v的容量为" << v. capacity ( ) << endl;
cout<< "v的大小为" << v. size ( ) << endl;
}
int main ( )
{
test01 ( ) ;
test02 ( ) ;
system ( "pause" ) ;
return 0 ;
}
vector
# include <iostream>
using namespace std;
# include <string>
# include <vector>
void printVector ( vector< int > & v)
{
for ( vector< int > :: iterator it= v. begin ( ) ; it!= v. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
vector< int > v1;
for ( int i= 0 ; i< 10 ; i++ )
{
v1. push_back ( i) ;
}
printVector ( v1) ;
vector< int > v2 ( v1. begin ( ) , v1. end ( ) ) ;
printVector ( v2) ;
vector< int > v3 ( 10 , 100 ) ;
printVector ( v3) ;
vector< int > v4 ( v3) ;
printVector ( v4) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
vector预留空间
# include <iostream>
# include <vector>
using namespace std;
void test01 ( )
{
vector< int > v;
v. reserve ( 0 ) ;
int num= 0 ;
int * p= NULL ;
for ( int i= 0 ; i< 100000 ; i++ )
{
v. push_back ( i) ;
if ( p!= & v[ 0 ] )
{
p= & v[ 0 ] ;
num++ ;
}
}
cout<< "num=" << num<< endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
deque容器
# include <iostream>
# include <vector>
# include <deque>
using namespace std;
void printDeque ( const deque< int > & d)
{
for ( deque< int > :: const_iterator it= d. begin ( ) ; it!= d. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
deque< int > d1;
for ( int i= 0 ; i< 10 ; i++ )
{
d1. push_back ( i) ;
}
printDeque ( d1) ;
deque< int > d2 ( d1. begin ( ) , d1. end ( ) ) ;
printDeque ( d2) ;
deque< int > d3 ( 10 , 100 ) ;
printDeque ( d3) ;
deque< int > d4 ( d3) ;
printDeque ( d4) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
deque赋值操作
# include <iostream>
# include <vector>
# include <deque>
using namespace std;
void printDeque ( const deque< int > d)
{
for ( deque< int > :: const_iterator it= d. begin ( ) ; it!= d. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
deque< int > d1;
for ( int i= 0 ; i< 10 ; i++ )
{
d1. push_back ( i) ;
}
printDeque ( d1) ;
deque< int > d2;
d2= d1;
printDeque ( d2) ;
deque< int > d3;
d3. assign ( d1. begin ( ) , d1. end ( ) ) ;
printDeque ( d3) ;
deque< int > d4;
d4. assign ( 10 , 100 ) ;
printDeque ( d4) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
deque大小操作
# include <iostream>
# include <vector>
# include <deque>
# include <string>
using namespace std;
void printDeque ( const deque< int > & d)
{
for ( deque< int > :: const_iterator it= d. begin ( ) ; it!= d. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
deque< int > d1;
for ( int i= 0 ; i< 10 ; i++ )
{
d1. push_back ( i) ;
}
printDeque ( d1) ;
if ( d1. empty ( ) )
{
cout<< "d1为空" << endl;
}
else
{
cout<< "d1不为空" << endl;
cout<< "d1的大小为" << d1. size ( ) << endl;
}
d1. resize ( 15 , 1 ) ;
printDeque ( d1) ;
d1. resize ( 5 ) ;
printDeque ( d1) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
deque容器的插入和删除
# include <iostream>
# include <vector>
# include <deque>
# include <string>
using namespace std;
void printDeque ( const deque< int > & d)
{
for ( deque< int > :: const_iterator it= d. begin ( ) ; it!= d. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
deque< int > d1;
d1. push_back ( 10 ) ;
d1. push_back ( 20 ) ;
d1. push_front ( 100 ) ;
d1. push_front ( 200 ) ;
printDeque ( d1) ;
d1. pop_back ( ) ;
printDeque ( d1) ;
d1. pop_front ( ) ;
printDeque ( d1) ;
}
void test02 ( )
{
deque< int > d1;
d1. push_back ( 10 ) ;
d1. push_back ( 20 ) ;
d1. push_front ( 100 ) ;
d1. push_front ( 200 ) ;
printDeque ( d1) ;
d1. insert ( d1. begin ( ) , 1000 ) ;
printDeque ( d1) ;
d1. insert ( d1. begin ( ) , 2 , 10000 ) ;
printDeque ( d1) ;
deque< int > d2;
d2. push_back ( 1 ) ;
d2. push_back ( 2 ) ;
d2. push_back ( 3 ) ;
d1. insert ( d1. begin ( ) , d2. begin ( ) , d2. end ( ) ) ;
printDeque ( d1) ;
}
void test03 ( )
{
deque< int > d1;
d1. push_back ( 10 ) ;
d1. push_back ( 20 ) ;
d1. push_front ( 100 ) ;
d1. push_front ( 200 ) ;
deque< int > :: iterator it= d1. begin ( ) ;
it++ ;
d1. erase ( it) ;
printDeque ( d1) ;
d1. erase ( d1. begin ( ) , d1. end ( ) ) ;
}
int main ( )
{
test02 ( ) ;
system ( "pause" ) ;
return 0 ;
}
deque容器数据存取操作
# include <iostream>
# include <vector>
# include <deque>
# include <string>
using namespace std;
void test01 ( )
{
deque< int > d;
d. push_back ( 10 ) ;
d. push_back ( 20 ) ;
d. push_back ( 30 ) ;
d. push_front ( 100 ) ;
d. push_front ( 200 ) ;
d. push_front ( 300 ) ;
for ( int i= 0 ; i< d. size ( ) ; i++ )
{
cout<< d[ i] << " " ;
}
cout<< endl;
for ( int i= 0 ; i< d. size ( ) ; i++ )
{
cout<< d. at ( i) << " " ;
}
cout<< endl;
cout<< "第一个元素为" << d. front ( ) << endl;
cout<< "第二个元素为" << d. back ( ) << endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
排序
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
using namespace std;
void printDeque ( const deque< int > & v)
{
for ( deque< int > :: const_iterator it= v. begin ( ) ; it!= v. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
deque< int > d;
d. push_back ( 10 ) ;
d. push_back ( 20 ) ;
d. push_back ( 30 ) ;
d. push_front ( 100 ) ;
d. push_front ( 200 ) ;
d. push_front ( 300 ) ;
printDeque ( d) ;
sort ( d. begin ( ) , d. end ( ) ) ;
cout<< "排序后" << endl;
printDeque ( d) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
list容器
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
using namespace std;
void printList ( const list< int > & L)
{
for ( list< int > :: const_iterator it= L. begin ( ) ; it!= L. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
list< int > L1;
L1. push_back ( 10 ) ;
L1. push_back ( 20 ) ;
L1. push_back ( 30 ) ;
L1. push_back ( 40 ) ;
printList ( L1) ;
list< int > L2 ( L1. begin ( ) , L1. end ( ) ) ;
printList ( L2) ;
list< int > L3 ( L1) ;
printList ( L3) ;
list< int > L4 ( 10 , 1000 ) ;
printList ( L4) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
list容器的复制和交换
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
using namespace std;
void printList ( const list< int > & L)
{
for ( list< int > :: const_iterator it= L. begin ( ) ; it!= L. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
list< int > L1;
L1. push_back ( 10 ) ;
L1. push_back ( 20 ) ;
L1. push_back ( 30 ) ;
L1. push_back ( 40 ) ;
printList ( L1) ;
list< int > L2;
L2= L1;
printList ( L2) ;
list< int > L3;
L3. assign ( L2. begin ( ) , L2. end ( ) ) ;
printList ( L3) ;
list< int > L4;
L4. assign ( 10 , 100 ) ;
printList ( L4) ;
}
void test02 ( )
{
list< int > L1;
L1. push_back ( 10 ) ;
L1. push_back ( 20 ) ;
L1. push_back ( 30 ) ;
L1. push_back ( 40 ) ;
list< int > L2;
L2. assign ( 10 , 100 ) ;
cout<< "交换前" << endl;
printList ( L1) ;
printList ( L2) ;
L1. swap ( L2) ;
cout<< "交换后" << endl;
printList ( L1) ;
printList ( L2) ;
}
int main ( )
{
test02 ( ) ;
system ( "pause" ) ;
return 0 ;
}
list容器大小操作
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
using namespace std;
void printList ( const list< int > & L)
{
for ( list< int > :: const_iterator it= L. begin ( ) ; it!= L. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
list< int > L1;
L1. push_back ( 10 ) ;
L1. push_back ( 20 ) ;
L1. push_back ( 30 ) ;
L1. push_back ( 40 ) ;
printList ( L1) ;
if ( L1. empty ( ) )
{
cout<< "L1为空" << endl;
}
else
cout<< "L1不为空" << endl;
cout<< "L1的元素个数为:" << L1. size ( ) << endl;
L1. resize ( 10 , 10000 ) ;
printList ( L1) ;
L1. resize ( 2 ) ;
printList ( L1) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
list容器的插入和删除
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
using namespace std;
void printList ( const list< int > & L)
{
for ( list< int > :: const_iterator it= L. begin ( ) ; it!= L. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
list< int > L;
L. push_back ( 10 ) ;
L. push_back ( 20 ) ;
L. push_back ( 30 ) ;
L. push_front ( 100 ) ;
L. push_front ( 200 ) ;
L. push_front ( 300 ) ;
printList ( L) ;
L. pop_back ( ) ;
printList ( L) ;
L. pop_front ( ) ;
printList ( L) ;
list< int > :: iterator it= L. begin ( ) ;
L. insert ( L. begin ( ) , 1000 ) ;
printList ( L) ;
it= L. begin ( ) ;
L. erase ( ++ it) ;
printList ( L) ;
L. push_back ( 10000 ) ;
L. push_back ( 10000 ) ;
printList ( L) ;
L. remove ( 10000 ) ;
printList ( L) ;
L. clear ( ) ;
printList ( L) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
list
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
using namespace std;
void test01 ( )
{
list< int > L1;
L1. push_back ( 10 ) ;
L1. push_back ( 20 ) ;
L1. push_back ( 30 ) ;
L1. push_back ( 40 ) ;
cout<< "第一个元素" << L1. front ( ) << endl;
cout<< "最后一个元素为" << L1. back ( ) << endl;
list< int > :: iterator it= L1. begin ( ) ;
it++ ;
it-- ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
list容器的反转与排序
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
using namespace std;
void printList ( list< int > & L)
{
for ( list< int > :: iterator it= L. begin ( ) ; it!= L. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
list< int > L1;
L1. push_back ( 20 ) ;
L1. push_back ( 10 ) ;
L1. push_back ( 50 ) ;
L1. push_back ( 40 ) ;
L1. push_back ( 30 ) ;
printList ( L1) ;
L1. reverse ( ) ;
cout<< "反转后" << endl;
printList ( L1) ;
}
bool myCompare ( int v1, int v2)
{
return v1> v2;
}
void test02 ( )
{
list< int > L1;
L1. push_back ( 20 ) ;
L1. push_back ( 10 ) ;
L1. push_back ( 50 ) ;
L1. push_back ( 40 ) ;
L1. push_back ( 30 ) ;
cout<< "排序前" << endl;
printList ( L1) ;
L1. sort ( ) ;
cout<< "排序后" << endl;
printList ( L1) ;
L1. sort ( ) ;
L1. sort ( myCompare) ;
printList ( L1) ;
}
int main ( )
{
test02 ( ) ;
system ( "pause" ) ;
return 0 ;
}
set容器
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
using namespace std;
void printSet ( set< int > & s)
{
for ( set< int > :: iterator it= s. begin ( ) ; it!= s. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
set< int > s1;
s1. insert ( 10 ) ;
s1. insert ( 30 ) ;
s1. insert ( 20 ) ;
s1. insert ( 40 ) ;
printSet ( s1) ;
set< int > s2 ( s1) ;
printSet ( s2) ;
set< int > s3;
s3= s2;
printSet ( s3) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
set大小和交换
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
using namespace std;
void printSet ( set< int > & s)
{
for ( set< int > :: iterator it= s. begin ( ) ; it!= s. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
set< int > s1;
s1. insert ( 10 ) ;
s1. insert ( 20 ) ;
s1. insert ( 30 ) ;
s1. insert ( 50 ) ;
printSet ( s1) ;
if ( s1. empty ( ) )
{
cout<< "s1为空" << endl;
}
else
{
cout<< "s1不为空" << endl;
cout<< s1. size ( ) << endl;
}
}
void test02 ( )
{
set< int > s1;
s1. insert ( 10 ) ;
s1. insert ( 20 ) ;
s1. insert ( 30 ) ;
s1. insert ( 50 ) ;
set< int > s2;
s2. insert ( 100 ) ;
s2. insert ( 200 ) ;
s2. insert ( 600 ) ;
s2. insert ( 500 ) ;
cout<< "交换前" << endl;
printSet ( s1) ;
printSet ( s2) ;
s1. swap ( s2) ;
cout<< "交换后" << endl;
printSet ( s1) ;
printSet ( s2) ;
}
int main ( )
{
test02 ( ) ;
system ( "pause" ) ;
return 0 ;
}
set容器插入和删除
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
using namespace std;
void printSet ( set< int > & s)
{
for ( set< int > :: iterator it= s. begin ( ) ; it!= s. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
void test01 ( )
{
set< int > s1;
s1. insert ( 10 ) ;
s1. insert ( 30 ) ;
s1. insert ( 20 ) ;
s1. insert ( 40 ) ;
printSet ( s1) ;
s1. erase ( s1. begin ( ) ) ;
printSet ( s1) ;
s1. erase ( 30 ) ;
printSet ( s1) ;
s1. clear ( ) ;
printSet ( s1) ;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
set容器查找和排序
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
using namespace std;
void test01 ( )
{
set< int > s1;
s1. insert ( 10 ) ;
s1. insert ( 30 ) ;
s1. insert ( 20 ) ;
s1. insert ( 40 ) ;
set< int > :: iterator pos= s1. find ( 30 ) ;
if ( pos!= s1. end ( ) )
{
cout<< "找到元素" << endl;
}
else
{
cout<< "未找到" << endl;
}
}
void test02 ( )
{
set< int > s1;
s1. insert ( 10 ) ;
s1. insert ( 30 ) ;
s1. insert ( 40 ) ;
s1. insert ( 20 ) ;
int num= s1. count ( 30 ) ;
cout<< "num=" << num<< endl;
}
int main ( )
{
test02 ( ) ;
system ( "pause" ) ;
return 0 ;
}
pair对组创建
#include <iostream>
#include<vector>
#include<deque>
#include<string>
#include<algorithm>
#include<list>
#include<set>
using namespace std ;
void test01 ( )
{
pair< string , int > p ( "Tom" , 20 ) ;
cout<< "姓名:" << p. first<< "年龄" << p. second<< endl;
pair< string , int > p2= make_pair ( "jerry" , 30 ) ;
cout<< "姓名:" << p2. first<< "年龄" << p2. second<< endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
容器排序
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
using namespace std;
class MyCompare
{
public :
bool operator ( ) ( int v1, int v2)
{
return v1> v2;
}
} ;
void test01 ( )
{
set< int > s1;
s1. insert ( 10 ) ;
s1. insert ( 30 ) ;
s1. insert ( 20 ) ;
s1. insert ( 40 ) ;
s1. insert ( 50 ) ;
for ( set< int > :: iterator it= s1. begin ( ) ; it!= s1. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
set< int , MyCompare> s2;
s2. insert ( 10 ) ;
s2. insert ( 30 ) ;
s2. insert ( 20 ) ;
s2. insert ( 40 ) ;
s2. insert ( 50 ) ;
for ( set< int > :: iterator it= s2. begin ( ) ; it!= s2. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
set容器排序
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
using namespace std;
class Person
{
public :
Person ( string name, int age)
{
this -> m_Name= name;
this -> m_Age= age;
}
string m_Name;
int m_Age;
} ;
class comparePerson
{
public :
bool operator ( ) ( const Person& p1, const Person& p2)
{
return p1. m_Age> p2. m_Age;
}
} ;
void test01 ( )
{
set< Person, comparePerson> s;
Person p1 ( "刘备" , 24 ) ;
Person p2 ( "关羽" , 28 ) ;
Person p3 ( "张飞" , 25 ) ;
Person p4 ( "赵云" , 21 ) ;
s. insert ( p1) ;
s. insert ( p2) ;
s. insert ( p3) ;
s. insert ( p4) ;
for ( set< Person, comparePerson> :: iterator it= s. begin ( ) ; it!= s. end ( ) ; it++ )
{
cout<< "姓名:" << it-> m_Name<< "年龄" << it-> m_Age<< endl;
}
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}
map容器
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
# include <map>
using namespace std;
void printMap ( map< int , int > & m)
{
for ( map< int , int > :: iterator it= m. begin ( ) ; it!= m. end ( ) ; it++ )
{
cout<< "key=" << ( * it) . first<< "value=" << it-> second<< endl;
}
cout<< endl;
}
void test01 ( )
{
map< int , int > m;
m. insert ( pair < int , int > ( 1 , 10 ) ) ;
m. insert ( pair < int , int > ( 3 , 20 ) ) ;
m. insert ( pair < int , int > ( 2 , 40 ) ) ;
m. insert ( pair < int , int > ( 4 , 30 ) ) ;
printMap ( m) ;
map< int , int > m2 ( m) ;
printMap ( m2) ;
map< int , int > m3;
m3= m2;
printMap ( m3) ;
}
int main ( )
{
test01 ( ) ;
return 0 ;
}
map容器操作
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
# include <map>
# include <ctime>
using namespace std;
void printMap ( map< int , int > & p)
{
for ( map< int , int > :: iterator it= p. begin ( ) ; it!= p. end ( ) ; it++ )
{
cout<< "key=" << it-> first<< "value=" << it-> second<< endl;
}
}
void test01 ( )
{
map< int , int > m;
m. insert ( pair < int , int > ( 1 , 10 ) ) ;
m. insert ( pair < int , int > ( 2 , 20 ) ) ;
m. insert ( pair < int , int > ( 3 , 30 ) ) ;
if ( m. empty ( ) )
{
cout<< "m为空" << endl;
}
else
{
cout<< "m不为空" << endl;
cout<< "m的大小为" << m. size ( ) << endl;
}
}
void test02 ( )
{
map< int , int > m1;
m1. insert ( pair < int , int > ( 1 , 10 ) ) ;
m1. insert ( pair < int , int > ( 2 , 20 ) ) ;
m1. insert ( pair < int , int > ( 3 , 30 ) ) ;
map< int , int > m2;
m2. insert ( pair < int , int > ( 4 , 100 ) ) ;
m2. insert ( pair < int , int > ( 5 , 200 ) ) ;
m2. insert ( pair < int , int > ( 6 , 300 ) ) ;
cout<< "交换前" << endl;
printMap ( m1) ;
printMap ( m2) ;
m1. swap ( m2) ;
cout<< "交换后" << endl;
printMap ( m1) ;
printMap ( m2) ;
}
int main ( )
{
test02 ( ) ;
system ( "pause" ) ;
return 0 ;
}
set和multiset的区别
# include <iostream>
# include <vector>
# include <deque>
# include <string>
# include <algorithm>
# include <list>
# include <set>
using namespace std;
void test01 ( )
{
set< int > s;
pair< set< int > :: iterator , bool > ret= s. insert ( 10 ) ;
if ( ret. second)
{
cout<< "第一次插入成功" << endl;
}
else
{
cout<< "第一次插入失败" << endl;
}
ret= s. insert ( 10 ) ;
if ( ret. second)
{
cout<< "第二次插入成功" << endl;
}
else
{
cout<< "第二次插入失败" << endl;
}
multiset< int > ms;
ms. insert ( 10 ) ;
ms. insert ( 10 ) ;
for ( multiset< int > :: iterator it= ms. begin ( ) ; it!= ms. end ( ) ; it++ )
{
cout<< * it<< " " ;
}
cout<< endl;
}
int main ( )
{
test01 ( ) ;
system ( "pause" ) ;
return 0 ;
}