// 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)
*/
读书笔记(C++)————【顺序容器】
最新推荐文章于 2022-01-19 22:16:54 发布