顺序容器提供了控制元素存储和访问顺序的能力。 顺序容器 vector 容器大小可变,支持随机访问,在头部或中间插入元素很慢 string 仅用于保存字符,其余同上 list 双向链表,方便元素的插入,但不支持随机访问 forward_list 单向链表,其余同上 deque 双端队列,支持快速访问,头尾插入效率高 arrry 不支持添加和删除元素以及改变容器大小的操作。 原则上来说时根据用途来选择用的容器,但一般情况下都使用vector. 例如:程序在读取数据时需要在中间插入元素,随后随机访问元素时,可以使用一下两种方法: 直接在vector尾部追加数据,再调用sort重排容器内元素   输入阶段使用list,输入成功后将list内容拷贝到vector 容器库概览 一般来说,每个容器都定义在一个头文件里,文件名与类型名相同,即使用vector必须添加<vector>头文件。 顺序容器可以保存任意类型的元素,此类型可以是另一容器。 迭代器 标准容器类型上的所有迭代器 继续阅读 >>


卢晓丹 16/02/01 00:05:48
前天看到了别人写的抓取斗鱼弹幕的程序,抓取斗鱼弹幕是我很早以前的一个想法,但是无奈不会写,不懂得tcp传过来的那些字节的含义,所以没写出来,当我看到别人写好的代码,我就参照人家的博客自己实现了一遍,今天我就想熊猫tv应该也是差不多的,所以自己写了一个抓熊猫TV弹幕的代码。 有想抓斗鱼弹幕的建议去看这个博客,有详细步骤 http://brucezz.github.io/articles/2016/01/11/douyu-crawler/ 下面说抓取熊猫tv弹幕 (一)抓包分析 这个比斗鱼的简单多了,最开始只有两个要发送的包,只要把这两个发过去,就可以接收到弹幕了。 现在的问题是第一次发送的那些数据从哪来。 分两步: (1)h ttp://www.panda.tv/ajax_chatroom?roomid=10255&_=1454038739756 得到 { “errno”: 0, “data”: { “sign”: “e629e9eca 继续阅读 >>


高朴 16/01/29 23:46:21
发现一些小的知识点长期不用都得忘,决定再次遇到了一定要记录一下。 const 成员函数 const对象只能调用const成员函数。 const对象的值不能被修改,在const成员函数中修改const对象数据成员的值是语法错误 在const函数中调用非const成员函数是语法错误 任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误,这无疑会提高程序的健壮性。 explicit 关键字 在构造函数前加explicit关键字禁止对象作隐式转换 #include<iostream> #include<string> class Buffer { public: explicit Buffer(std::string s) { str = s; std::cout<<s<<st 继续阅读 >>


刘瑜晗 16/01/28 19:42:54
在阅读一些项目的源代码时,遇到了一些我平时很少见,但发现很有用的C语言语法,在此整理一下。 #undef 我们平时用的都是#define,突然遇到了这个。。。其实,#undef 与 #define 相对应。#undef 的作用是取消已经有的宏定义。 #include<stdio.h> #define MAX 5 int main() { #undef MAX // printf("%d\n",MAX); #define MAX 6 printf("%d\n",MAX); return 0; } 结果: 当取消第6行printf的注释,将会报错,‘MAX’ undeclared , 因为MAX宏被undef 取消了。 结构体中的可变长数组 char data[0]; 常见如下形式的定义: struct buf { int len; char data[0]; }; 这其实 继续阅读 >>


刘瑜晗 16/01/27 23:23:52
1. repo forall -c 该命令可以对所有项目执行command 比如远端只有master分支,现在想批量给每个库都新建一个branch repo forall -c git branch name_biz_develop repo forall -c git checkout name_biz_develop repo forall -c git push -u origin name_biz_develop 比如批量删除远端的分支 repo forall -c git branch -r -d origin/myname_develop   repo forall -c git push origin : myname_develop 2. repo status  显示所有项目改动的状态 3. repo branches  显示所有项目的分支 4. repo sync 同步项目代码,注意谨慎使用 如果项目分支不在repo默认分支上,会执行rebase动作 可参看: http 继续阅读 >>


穆毅鹏 16/01/26 21:11:23
×× 前几天看了一下豆瓣电影的内容,想从豆瓣电影的分类排行榜 · · · · · 中爬取多一点的电影信息。点击一个类型进去之后发现它里面的电影信息时需要你不断往下拉动滚动条之后才会动态地加载更多的电影信息并显示出来。 观察了一下发现了它采用的是AJAX异步请求(通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新).这样就导致了查看到源代码内容(因为它是静态的)与网页内容不同。 F12之后发现了可疑的js文件,如下: 通过浏览器打开这个js文件发现它的里面就是从服务器端返回的电影信息的一个json对象数组。这个js文件的url是这样的: https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=20&limit=20 每个这样的url除了start和limit后 继续阅读 >>


潘璐 16/01/26 20:06:07
13号放假回家,现在是1月24日凌晨,回家已经11天啦 回家这些天纯粹就是玩,每天看斗鱼,早上看油条,下午看狮子汪,晚上主播多,看的多.每一种状态持续太久就容易厌烦,现在我就厌烦了每天这种状态了.昨天开始就用上了我的linux,不玩lol了,完了容易上瘾,一玩一下午,到晚上再看看直播一天时间就完了 今天一直在看技术相关的东西,努力找回学习的状态.感觉今天的时间没有荒废. 作者:gaopu12345 发表于2016/1/24 0:10:25 原文链接 阅读:148 评论:0 查看评论 继续阅读 >>


高朴 16/01/24 00:10:25
上一篇简单介绍了dom解析xml文件的用法,但是dom解析有一个缺点,就是dom解析前需要将xml文件一次性的读入内存当中,而SAX解析则解决了这个问题。 SAX:是Simple API for XML的简写,既是一种接口,也是一种软件包。 SAX是一种XML解析的替代方法。SAX不同于DOM解析,它逐行扫描文档,一边扫描一边解析,所以它内存占用少,对于大型文档的解析是个很好的优势。 首先是解析的步骤: 创建SAX解析器工厂对象; SAXParseFactory spf = SAXParserFactory.newInstance(); 使用解析器工厂创建解析器实例;SAXParse saxParser = spf.newSAXParser(); 创建xml内容解析器对象;PersonHandler ph = new PersonHandler(); 开始解析文档调用的方法 结束解析文档调用的方法 解析开始元素调用的方法 解析结束元素调用的方法 解析文本内容调用的方法 创建xml文件输入流,开始解析xml文件: SAX是从上往下依次解析 继续阅读 >>


朱新全 16/01/22 16:54:19
三个主要的头文件: iostream 用于读写流的基本类型 istream, ostream, iostream; ifstream 用于读写命名文件 ifstream, ofstream, fstream; sstream 读写内存string对象的类型 istringstream, ostringstream, stringtream 继承机制可以声明一个类继承与另一个类。比如以上的三个头文件包含的类型分别继承自isream, ostrem,为他们的派生类,通常使用派生类时可以将其当做其基类来使用。 查询流的状态 IO库定义了iostate类型,提供了表达流状态的完整功能。 iostate有下列标志: badbit:发生致命错误 eofbit:已经发现EOF failbit:一个非致命x 管理条件状态 clear()函数: 不接受参数:清除所有错误标志,执行后,调用good会返回true。 接受参数:接受一个iostate值,表示流的新状态。我们首先用rdstate()读出当前 继续阅读 >>


卢晓丹 16/01/22 16:19:36
XML是一种可扩展的标记语言,首先它是一种标记语言,类似于HTML,有标签,标签有属性,然而与HTML不同的是XML的标签是可以自己定义的,这样就方便我们存储一些有层次结构的内容! 这里要说的是使用DOM去解析XML文件: 首先,DOM是一种文档对象模型(Document Object Model),使用DOM解析时会将XML文档表示为树状,具有层次性。 如下是一个xml文件的例子: <?xml version="1.0" encoding="UTF-8"?> <person> <teacher id="1"> <name>小白</name> <desc>小白人</desc> </teacher> <teacher id="2"> <name>小黑</name> <desc>小黑人</desc> &l 继续阅读 >>


朱新全 16/01/21 20:55:33