STL&容器

序列容器:

 

vector 矢量容器 vector<int> mydata后面若有(100)表明是100个元素

                                             (100,-1)100个元素都是-1

                    mydata[2]=999

mydata.push_back(99)

mydata.pop_back()删除最后一个元素

mydata.clear()删除所有元素

慢!mydata.erase(mydata.end()-2)删除倒数第二个元素

mydata.erase(mydata.begin()+1,mydata.begin()+4)删除第234个元素(不包括最后一个

慢!mydata.insert(mydata.begin()+1,88)在第一个元素后面插入88

mydata.insert(mydata.begin()+1,2,88) 第一个元素后面插入两个88

insert(1,2,3)2-3的东西插入到1不包括3,最后一个

mydata1.swap(mydata2)内容大小全部交换

mydata.assign(values.begin()+1,values.end()-1)替换(第二个迭代器不包括最后一个元素)

mydata.assign(30,99.5)替换成3099.5

mydata.reserve(100)创建容器后使之提供足以容纳100个元素的内存,仅当添加第101个元素时才会自动增加容量。每次增加当前容量的一半

          vector<double> mydata(data,data+8);data是数组名,data是数组中的第一次初始化元素(mydata.begin()),data+8mydata.end())是最后一个初始化元素的下一个位置,即把data[0]data[7]的值赋给mydata

 

容量capacity

            大小size

            vector<double>::size_type某变量名= mydata.capacity()

            mydata.empty()

 

 

 

 mydata.at(i)下标超过范围时会抛出out_of_range的异常

       mydata[i]不会抛出异常

           mydata.front()第一个元素

           mydata.back()最后一个

          const int &firstvalue=mydata.front()可以返回const引用,防止修改对象

           int &firstvalue=mydata.front()也可以

           只要随机访问迭代器包含的对象可以用<来比较,algorithm 头文件中定义的sort()就可以对随即访问迭代器的容器的内容进行排序()sort(mydata.begin(),mydata.end())同时需要#includealgorithm头文件和using std::sort。也可以排序data数组sort(data,data+count)Sort也可以和functional头文件一起进行升序等

deque双端队列容器

不同的是它可以在序列在开头添加或删除push_front pop_front但是比矢量容器慢

list列表可以push_front push_back也可以mydata.insert(表示位置的数字或者迭代器,77)但是由于不能访问任意位置的元素,所以想得到第8个元素的迭代器,就要从1开始不停加到第8个

 由于不可以随意访问任何位置,所以list<T>模板定义自己的sort函数

         mydata.remove(22)删除所有等于22的元素

         mydata.unique()消除相邻重复元素

         mydata.splice(迭代器1,mydata2)迭代器1处插入mydata2

        mydata.splice(迭代器1,mydata2,迭代器2)迭代器1处插入:mydata2从迭代器2开始的元素,并且mydata2中删除对应元素

           mydata.splice(迭代器1,mydata2,迭代器2,迭代器3) 代器1处插入:mydata2从迭代器2开始到迭代器2结束的元素,并且mydata2中删除对应元素

          mydata1.merge(mydata2)把mydata2合并到mydata1后整体以升序排列,mydata2变空

queue 队列容器先进先出,只能向队列的末尾添加或开头删除

 back,front,push后端添加,pop前端删除,size,empty.

priority_queue 优先级队列容器默认基于vector只能访问前端元素

 top(不能访问队列后端,只能访问前端),push,pop,size,empty

最先进去的地方应该是top,(若用greater定义,则top是最小的)

char *firstname,secondname:要动态分配内存,需定义赋值运算符=

stringfirstname,secondname:不要,不需

Stack栈容器默认基于deque,后进先出

 top,push,pop,size,empty

array<T,N>数组容器

std::array<int,10>mydata={1,2,3,4,5}

可以用迭代器遍历,也可以像普通数组那样用索引遍历

typedefstd::tuple<int,std::string,std::string,int> Record;

std::array<Record,5> mydata={Record{1001,”Joan”,”Jetson”,35}  ,

Record{1002,”Jim”,”Jones”,26},

}

Mydata[2]=std::make_tuple{1003,”Jean”,”Jorell”,29}添加元素

get<0>(1);mydata[1]的第0

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值