码迷,mamicode.com
首页 > 编程语言 > 详细

C++ Primer笔记 容器和算法(2)

时间:2017-08-16 09:54:41      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:bsp   ++   air   iter   city   item   vector   next   empty   

erase 删除后  返回的是删除元素的后一个迭代器位置
int main()
{
	//怎样正确的删除全部元素 循环
	int a[]={1,2,3,4,5,6,7,8,9};
	vector<int> v(a,a+6);
	for(vector<int>::iterator it=v.begin();it!=v.end();)
	{
		it=v.erase(it);
	}
	for(vector<int>::iterator it=v.begin();it!=v.end();it++)
	{
		cout<<*it<<endl;
	}
	cout<<v.size()<<endl;
	getchar();
	return 0;
}




重置元素和交换元素


c.swap(c2)


c.assign(b,e)


c.assign(n,t)  (迭代器不能是指向c的)


容器能够自己主动增长


像vector这样的增长代价比list要大


capacity()和reserve()


通常会预留比size大的空间,当不得不又一次分配内存时候,会加倍当前容量的分配策略
也能够手动reserve(size) 分配


deque能够随机訪问


String s4(s3.begin(),s3.end())

 

适配器

 

1.       Stack<int> stack(deq)‘

Stack,queue都基于deque实现

2.       Priority_queue 基于vector实现

 

s.empty()

s.size()

s.pop()

s.top()

s.push(item)

 

队列

q.empty()

q.size()

q.pop()

q.front()

q.back()

q.top()

q.push()

 

关联容器

 

Map与set

 

Map:key-value

Set:一个key

Multimap:同一个键多次出现的map类型

Multiset:同一个键多次出现的set类型

 

1.Pair 类型

创建与初始化:  pair<string,string> p;

p.first 第一个元素  p.second 第二个元素

 

又一次生成:  pair<string,string>next;

                      Next=make_pair(first,last);

也支持直接赋值

                Next.first=xx.   Next.second=xx;

 

2.关联容器:

2.1 map

Map<ISBN,sales> bookstore;

 

Map<k,v>::key_type , mapped_type,value_type(pair类型)

 

 

C++ Primer笔记 容器和算法(2)

标签:bsp   ++   air   iter   city   item   vector   next   empty   

原文地址:http://www.cnblogs.com/yangykaifa/p/7371372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!