首页 / C++ / c++98 stl-deque
c++98 stl-deque
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c++98 stl-deque,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1944字,纯文字阅读大概需要3分钟。
内容图文
![c++98 stl-deque](/upload/InfoBanner/zyjiaocheng/642/c60ccba6a2364cfea04f6be9c9f2c1eb.jpg)
#include <deque>
#include <vector>
//deque是c++98中引入的动态数组(dynamic array)
//namespace std {
//template<typename T, typename Allocator = allocator<T>>
//class deque;
//}
//特点:随机访问元素, 末端和头部添加删除元素效率高,中间删除和添加元素效率低
//而vector仅仅操作尾部效率高
//元素的访问和迭代比vector要慢,迭代器不能是普通的指针
using Group = std::deque<float>;
static void dequePart() {
Group a;
Group b = a;
Group c(a);
Group d(10);
Group e(10, 1.0f);
Group f(e.begin(), e.end());
Group g({1.0f, 2.0f, 3.0f});
Group h = {1.0f, 2.0f, 3.0f};
Group i {1.0f, 2.0f, 3.0f};
if(!a.empty()) a.pop_back();
d.empty();
d.size();
d.max_size();
//和vector不同, deque不提供以下的函数
//d.capacity();
//d.reserve(100);
d.shrink_to_fit(); //c++11
//交换
b.swap(a);
std::swap(a, b);
//元素访问
b[0];
b.at(0);
b.front();
b.back();
//迭代器相关
a.begin();
b.end();
a.cbegin();
a.cend();
a.rbegin();
a.rend();
a.crbegin();
a.crend();
a.pop_back();
a.push_back(1.0f);
a.push_front(1.2f); //vector没有
b.emplace_front(1.0f);
auto iter = b.insert(b.end(), 100.0f); //在某个位置插入元素
b.insert(b.end(), 10, -10.0f);
b.insert(b.end(), h.begin(), h.end());
b.emplace(b.end(), 10.0f);
b.emplace_back(10.0f);
b.resize(10);
b.resize(100, 10.0f);
b.clear();
b.shrink_to_fit(); //释放适当的内存
//异常
//1 push_back push_front 不会抛出异常
//2 move /copy 没有异常的话
//insert emplace emplace_back push_back emplace_front
//pop_back pop_front erase swap clear 不会抛出异常
//应用场景: 可以来储存网络消息的连聊天包机制,分别发包机制
//using Buffer = std::vector<char>;
//using BufferGroup = std::deque<Buffer>;
//BufferGroup group;
//Buffer buffer;
//
//auto ok = readFromClinet(socket, &buffer);
//if(ok) {
// group.emplace_back(std::move(buffer));
//}else {
// //handle error
//}
//while(!group.empty()) {
// auto ok = sendToClient(socket, group.front());
// if(ok) {
// group.pop_front();
// }else {
// //handle error
// }
//}
}
int main(void) {
return 0;
}
内容总结
以上是互联网集市为您收集整理的c++98 stl-deque全部内容,希望文章能够帮你解决c++98 stl-deque所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】