容器类

容器是包含其他对象的对象。C++中提供了一系列的容器类主要包括顺序容器和关联容器。顺序容器包括vector,list,deque。关联容器包括:映射多重映射,集合和多重集合。

顺序容器可以提供对容器元素的快速访问。关联容器便于插入语删除。 

/*string的构造函数
*/
/*
#include<iostream>
using namespace std;
#include<string>
int main()
{
	string a(4,'c');
	string b("value");
	string c(b);
	cout<<a<<endl;
	cout<<b<<endl;
	cout<<c<<endl;
	//判断字符串是否为空
	if(!c.empty())
	{
		cout<<"c is not empty"<<endl;
//		string::size_type=c.size();
//		cout<<string::size_type<<endl;
	}
	//按照字符下标输出字符串
	cout<<c[4]<<endl;
	//字符串重载+号操作符
	c+=c;
	//字符串重载=操作符
	a=c;
	if(a==c)
	{
		cout<<"a is equal to c"<<endl;
	}
	cout<<a<<endl;
	cout<<c<<endl;
	string d;
	//输出带空格的字符串的方法
	getline(cin,d);
	cout<<d<<endl;
	//输出带空格后面的字符串的方法
	string e;
	while(cin>>e)
	{
		cout<<e;
	}
	return 0;
}
*/
/*字符串的赋值
*/
/*
#include<iostream>
using namespace std;
#include<string>
int main()
{
	string s1="asdf";
	string s2="sefwe";
	string s3=s1+s2;
	string s4="asdfe"+s3;
	cout<<s4<<endl;
	cout<<s3<<endl;
	string::size_type si;
	for(si=0;si<s4.size();si++)
		cout<<s4[si]<<endl;
	if(isalnum(s4[4]))
	{
		cout<<"yes"<<endl;
	}
	if(isdigit(s4[4]))
	{
		cout<<"is digital"<<endl;
	}
	if(isupper(s4[4]))
	{
		cout<<"is upper alpher"<<endl;
	}
	for(si=0;si!=s4.size();si++)
	{
		s4[si]=toupper(s4[si]);
	}
	cout<<s4<<endl;
	return 0;
}
*/
/*容器操作
*/
/*
#include<iostream>
using namespace std;
#include<vector>
#include<string>
int main()
{
	vector<int>a(10,12);
	vector<int>::iterator it;
	for(it=a.begin();it!=a.end();it++)
	{
		cout<<*it<<endl;
	}
	vector<string> b(3,"w3r");
	//const_iterator类型只能读取不能赋值
	vector<string>::const_iterator is;
	for(is=b.begin();is!=b.end();is++)
	{
	//	*is="haha";
		cout<<*is<<endl;
	}
	vector<int>c(a);
	for(it=c.begin();it!=c.end();it++)
	{
		cout<<*it<<endl;
	}
	if(b.empty())
	{
		cout<<"b is empty"<<endl;
	}
	else
		cout<<"b is not empty"<<endl;
	cout<<b.size()<<endl;
	b.push_back("awerfwfeff");
	cout<<b.back()<<endl;
	cout<<b.front()<<endl;
	cout<<b[2]<<endl;
	return 0;
}
*/
/*
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<list>
#include<deque>
using namespace std;
int main()
{
	string a("aweffwergergeg");
	string q("woshishui");
	vector<int> b(12,4);
	vector<string>c(2,a);
	vector<string>d(c.begin(),c.begin()+c.size()/2);
	vector<string>::const_iterator it;
	b.reserve(50);
	cout<<b.capacity()<<endl;
	cout<<c.capacity()<<endl;
	for(it=d.begin();it!=d.end();it++)
	{
		cout<<*it<<endl;
	}
	vector<string>::iterator mid=c.begin()+c.size()/2;
	deque<string>e(3,q);
	deque<string>::const_iterator dt;
	for(dt=e.begin();dt!=e.end();dt++)
	{
		cout<<*dt<<endl;
	}
	deque<string>::reverse_iterator at=e.rend();
	cout<<*at<<endl;
	cout<<e.front()<<endl;
	deque<string>::size_type si=3;
	deque<string>f(3,a);
	for(dt=f.begin();dt!=f.end();dt++)
	{
		cout<<*dt<<endl;
	}
	deque< deque<string> >line(2,f);
	deque< deque<string> >::iterator is;
	for(is=line.begin();is!=line.end();is++)
	{
		for(dt=is->begin();dt!=is->end();dt++)
		cout<<*dt<<endl;
	}
	f.insert(f.end(),d.begin(),d.end());
	for(dt=f.begin();dt!=f.end();dt++)
	{
		cout<<*dt<<endl;
	}
	f.insert(f.end(),3,"hlou");
	deque<string>::iterator ios=find(f.begin(),f.end(),"hlou");
	if(ios!=f.end())
	{
		f.erase(ios);
	}
	for(dt=f.begin();dt!=f.end();dt++)
	{
		cout<<*dt<<endl;
	}
	f.swap(e);
	for(dt=f.begin();dt!=f.end();dt++)
	{
		cout<<*dt<<endl;
	}
	f.assign(e.begin(),(e.begin()+e.size()/3));
	for(dt=f.begin();dt!=f.end();dt++)
	{
		cout<<*dt<<endl;
	}
	return 0;
}
*/
/*
#include<iostream>
#include<string>
using namespace std;
int main()
{
	string s("aaaaaaaaaaa");
	string s1("bbbb");
	string s2("c123c");
	string s3=s1+s2;
	cout<<s3<<endl;
	s3.append("dddd");
	s3.replace(1,4,"eeeee");
	cout<<s3<<endl;
	cout<<s3<<endl;
	int num=s3.find("d");
	cout<<num<<endl;
	string::size_type sz=0;
	string number("123567890");
	sz=s3.find_first_of(number);
	cout<<sz<<endl;
	sz=s3.rfind("e");
	cout<<sz<<endl;
	string r1("abcccc");
	string r2("accccc");
	cout<<r1.compare(r2)<<endl;
	cout<<r1.compare(2,4,r2,2,4)<<endl;
	return 0;
}
*/
/*
容器适配器之栈:提供五种操作分别是pop,push,empty,size,top
*/
/*
#include<iostream>
#include<stack>
using namespace std;
int main()

{
	stack<int> num;
	stack<int>::value_type value=10;
	int i=1;
	while(num.size()!=value)
	{
		num.push(i);
		i++;
	}
	cout<<num.top()<<endl;
	while(num.top()!=4)
	{
		num.pop();
	}
	cout<<num.top()<<endl;
	cout<<num.size()<<endl;
	if(num.empty())
	{
		cout<<"this stack is empty!"<<endl;
	}
	else
		cout<<"this stack is not empty!"<<endl;
	stack<int>b(num);
	cout<<b.top()<<endl;
	while(!b.empty())
	{
		cout<<b.top()<<endl;
		b.pop();
	}
	b.push(234);
	if(b.empty())
	{
		cout<<"this stack is empty!"<<endl;
	}
	else
		cout<<"this stack is not empty!"<<endl;
	return 0;
}
*/
/*
容器适配器之队列:queue
*/
/*
#include<iostream>
#include<queue>
using namespace std;
int main()
{
	queue<int> num;
	queue<int>::value_type value=10;
	int i=1;
	while(num.size()!=value)
	{
		num.push(i++);
	}
	cout<<num.front()<<endl;
	cout<<num.back()<<endl;
	num.pop();
	cout<<num.front()<<endl;
	cout<<num.size()<<endl;
	return 0;
}
*/
/*
容器适配器之priority_queue
*/
#include<iostream>
#include<queue>
using namespace std;
int main()
{
	priority_queue<int>num;
	priority_queue<int>::value_type value=100;
	int i=100;
	while(num.size()!=value)
	{
		num.push((i++)%57);
	}
	cout<<num.top()<<endl;
	priority_queue<int>nab(num);
	while(!nab.empty())
	{
		cout<<nab.top()<<endl;
		nab.pop();
	}
	return 0;
}


以上代码为顺序容器以及容器适配器的各个成员函数的使用方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值