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

来源:互联网 发布:淘宝美工面试丢人了 编辑:程序博客网 时间:2024/06/05 18:42
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类型)

 

 

0 0
原创粉丝点击