读书笔记(C++)————【顺序容器】

// 9.1 顺序容器的定义


//表 9 - 1 顺序容器

vector  //支持快速随机访问

list     //支持快速插入/删除

deque   //双端队列

//顺序容器适配器

stack   //LIFO

queue   //LIFO

priority_queue  //有优先级管理的队列




// 9.1.1 容器元素的初始化


//表 9 - 2 容器构造函数

C<T> c;

C c(c2);

C c(b,e);

C c(n,t);

C c(n);

//example

//初始化位一段元素副本

list<string> slist(svec.begin(),svec.end);

vector<string> mid = svec.begin() + svec.end()/2;

deque<string> front(svec.begin(),mid);

char *words[] = {"xxx","xnj","buck"};

int wordSize = sizeof(words)/sizeof(char *);

list<string> words2(words,words + wordSize);

//分配和初始化指定数目的元素

list<string> str(64,"xxx");

list<int> ilist(64)     //64个数每个都是0;

extern unsigned get_word_count(const string &file_name);

vector<string> svec(get_word_count("xxx"))  //只指定容器大小


// 9.1.2 容器内元素的类型约束

/*

容器元素类型必须满足一下两个约束

~元素类型必须支持赋值运算

~元素类型的对象必须可以复制

*/

//  9.2 迭代器和迭代器范围

/*
表 9 - 3 常用迭代器运算

*iter

iter->mem

++iter

iter++

iter1 == iter2

iter1 != iter2

*/

/*
表 9 - 4 vector and deque 类型迭代器支持的操作

iter + n

iter - n;

iter1 += iter2

iter1 -= iter2

iter1 - iter2

> >= < <=
*/

// 9.3 顺讯容器的操作

/*

表 9 - 5 容器定义的类型别名

size_type

iterator

const_iterator

reverse_iterator

const_reverse_iterator

difference_type

value_type

reference

const_reference

*/


/*

表 9 - 6 容器的begin和end操作

c.begin()

c.end()

c.rbegin()

c.rend()

*/


// 在顺序容器中添加元素

string str;

while(cin >> str)
    c.push_back(str);

/*

表 9 - 7 在顺序容器中添加元素的操作

c.push_back(t)

c.push_front(t)

c.insert(p,t)

c.insert(p,n,t) //在迭代器P所指向的元素前面插入N个值为T的新元素,返回void类型

c.insert(p,b,e) //在迭代器P所指向的元素前面插入有迭代器B和E标记范围内的元素
*/

list<string> lst
list<string>::iterator iter = lst.begin();
while(cin >> word)
    iter = lst.isert(iter,word)  //same as push_front

string str = {"xxx","sherkin","xnj","buchun"};
slist.insert(slist.end(),str,str + 4);

list<string>::iterator iter = slist.begin();
slist.insert(iter,str + 2,str + 4);


// 容器大小的操作

/*

表 9 - 8 顺序容器的大小操作

c.size()

c.max_size()

c.empty()

c.resize(n)

c.resize(n,t)

*/


/*

表 9 - 9 访问顺序容器内元素的操作

c.back()

c.front()

c[n]

c.at(n)

*/

/*

表 9 - 10 删除顺序容器内元素的操作

c.erase(p)

c.erase(b,e)

c.clear();

c.pop_back()

c.popfront()

*/


/*

表 9 - 11 顺序容器的赋值操作

c1 = c2

c1.swap(c2)

c.assign(b,e) // B,E不指向容器C内的元素

c.assign(n,t)

*/










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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值