1.vector是什么? vector 基础知识 2.如何实现: 实现代码: #include<iostream> #include<vector> #define count 3 using namespace std; //目标就是完成二维vector的所有操作 int main(void) { vector<vector<int>> vec1(count) ; //二维数组的 vector 定义 //初始化一个3x3的矩阵,数值为 333 for(int i = 0 ;i < vec1.size() ;++i){ for(int j= 0 ;j < count ;++j){ vec1[i].push_back(333); } } //增加一行,数值为444 vector<int> temp ; vec1.push_back(temp); int pos = vec 继续阅读 >>


刘生玺 18/01/01 15:09:44
前言 最近发现一个公众号,每天一道题,难度也不大,而且题干很短,搜了下,题都是LintCode这个平台的,今天注册了小号做了做,中文很友好(和LeetCode相比,可以说造福广大吃瓜群众),然后可以看到哪个用例过不去(造福非ACMer,看到WA就“卧槽,咋可能错了”的选手),并且类似LeetCode,只用写关键的方法,不用去管格式化输出输入。 正文 LintCode 144 交错正负数 描述: 给出一个含有正整数和负整数的数组,重新排列成一个正负数交错的数组。 样例: 给出数组[-1, -2, -3, 4, 5, 6],重新排序之后,变成[-1, 5, -2, 4, -3, 6]或者其他任何满足要求的答案. 我的思路很简单,因为没有要求必须是正开头或者必须是负开头,只要A[1]A[3]A[5]….与A[0]符号不同,A[2],A[4],A[6]…与A[0]符号相同就满足要求。 于是就写下这样的代码: class Solution { public: /* * @param A: An integer array. * @return: 继续阅读 >>


康艺杰 17/12/31 15:47:29
前言 有时结果和你想的不一样,并不一定是你想错了。。。可能是编译器优化了。 正文 在给学弟讲题时遇到了这样一个问题,代码如下 class A{ public: A() = default; A(const A &a): str(a.str){ cout << "copy" << endl; } A(const string &d):str(d){ cout << "str" << endl; } string str; }; void func(A a) { cout << a.str << endl; } int main() { func(string("hello world")); } 大家想一想输出结果是什么? Ok,我的思路是这样的: 首先调用std::string 的构造函数,通过一个字符串常量,构造了一个std::string对象,这个对象是个临时值,也就是说是个右值,我 继续阅读 >>


康艺杰 17/12/30 20:42:38
一、前言 作为一只大四狗,最近还跟着大二同学修了一门课(当然不是之前没通过啦),课程是高级语言课程设计,高级语言指的是C语言 :),内容是做一个XX管理系统,我选择了图书管理系统,先介绍下我做的系统: 主要功能: 读者信息管理:添加、修改、删除、查询读者信息。 图书信息管理:添加图书、修改图书、删除图书、查询图书 图书借阅归还:图书借阅和归还,以及列出借阅情况。 信息统计汇总:图书总量统计、图书借阅统计等。 日志功能:记录用户、图书、借阅相关信息的日志。 参与对象:管理员和用户,管理员主要指图书馆相关工作负责人员,用户指老师或者教工,可以从图书馆借书。 数据存储格式:文件。 数据组织方式:链表。 界面:ncurses库。 其它:CMake组织项目、GitHub版本控制:代码地址 、Linux操作系统运行。 为了体现我大学四年也不是白念的,当然得体现出逼格,那就从界面下手,于是我选择了ncurses这个终端字符库,最后的界面是这样的: 整个界面分为三部分,上面显示系统名称和时间,用户登录之后还会显示用户名;左下是整个程序的功能菜单部分;右下是系统日志,负责动态显示 继续阅读 >>


杨博东 17/12/28 15:41:47
JVM开发团队一直在努力,缩小Java与C/C++语言在运行效率上的差距。 本篇博客,我们来谈一谈JVM(HotSpot)为了提高Java程序的运行效率,都实现了哪些激动人心的技术~ JIT编译器的引入 首先我们这篇文章中所说的编译器都是指JVM的组成部分之一—即时编译器(JIT),与生成Java字节码的javac编译器要区分开来。 你也许想说,为什么要引进JIT编译器?很好的问题。 我们知道,javac将程序源代码编译,转换成Java字节码,解释器对字节码进行解释执行。而虚拟机传统的解释器,就是要将字节码中的操作指令和真正的平台体系结构之间的指令做映射。比如把Java的load指令换成native code的load指令。 JIT的出现,是为了补强虚拟机边运行边解释的低性能。它会智能地对热点代码进行优化且重复利用,最终将这些代码编译为与本地平台相关的机器码。 解释器与编译器 并存架构 刚才说明了引入JIT编译器的好处,那么HotSpot JVM为什么不完全采用编译器模式而是采用解释器与编译器并存的架构呢? 解释器与编译器各有优势:当程序需要迅速 继续阅读 >>


董恒毅 17/12/28 10:09:34
使用时#include包含以下代码的头文件即可: // File: pstring.hpp #ifndef __HEADER__PSTRING_ #define __HEADER__PSTRING_ #include<stdexcept> #include<iostream> class pstring { private: // 任意迭代器类型 template<typename FN> struct any_iterator { private: char *p; public: any_iterator(): p(nullptr) {} any_iterator(char *p): p(p) {} char &operator *() { return *p; } char *operator ->() { 继续阅读 >>


娄泽豪 17/12/27 21:30:15
#include<iostream> #include<cstring> using namespace std; void byteorder(); int main() { byteorder(); return 0; } void byteorder() { union{ short value; char union_bytes[sizeof(short)]; }test; test.value = 0x0102;//二进制为100000010 /*当小端取低字节8位二进制00000010转换就是2,再取一位就是1 同理大端就是1,2 */ if((test.union_bytes[0]==1)&&test.union_bytes[1]==2) cout <<"big endian"<<endl; else if((test.union_bytes[0]==2)&& 继续阅读 >>


陈文浩 17/12/27 21:25:10
(1)网络应用程序体系结构: 1、客户——服务器结构:这个结构的话就是服务器是中心,客户与中心服务器连接。客户端之间不会相互通信,并且服务器有一个固定的公共的IP地址。 2、p2p结构:(这个结构与客户——服务器结构的区别就是在这个结构中不存在中心服务器)括号里是我自己写出的P2P结构的理解,是错误的,实际上,在P2P结构中客户端对位于中心的服务器依赖很小甚至没有依赖,客户端和客户端是可以相互通信的,像树的分支一样。位于中心的服务器用于追踪用户的IP地址。 (2)进程间通信: 1、套接字:进程通过套接字向网络发送接收报文。在同一台主机内:套接字是应用层和网络层之间的接口,套接字也称为应用程序和网络之间的应用程序编程接口, 2、进程寻址:为了找到接收进程,我们需要两个信息:目的主机的地址和目的主机上接收进程的标识符。前者可以运用IP地址,而后者可以运用目的端口号。 3、应用层协议将为应用程序提供服务,那么提供服务可以按四个要求来讨论:可靠传输,吞吐量,定时,安全性: <1>可靠传输:可靠传输就是保证数据可以完整并且无差错的到达接收方 <2>吞吐量: 继续阅读 >>


梁梦迪 17/12/26 21:53:55
cookie AND session 首先cookie是用来标识用户身份以及追踪用户状态的,下面我用自己的话来描述一下cookie的工作流程~ 某一天,mendy第一次登录baidu这个网站。Baidu发现mendy是第一次登录,于是baidu会创建一个唯一的标识码给mendy,同时baidu会以这个标识码作为索引将标识码添加到后端的数据库中(这个标识码可能是cookie:1008),接下来,baidu会在http response中添加set-cookie:cookie:1008返回给mendy的浏览器。mendy的浏览器会将这个cookie信息添加到它的cookie文件中,下次mendy再一次访问baidu的时候,会从cookie文件中找到对应的cookie信息添加到http请求报文中发送给baidu服务器,(cookie包括过期时间,路径,域,名字,值。如果不设置cookie的过期时间,默认过期时间是浏览器的会话期间。如果不设置过期时间,cookie是存储在内存中的,如果设置了过期时间,cookie就会存储在硬盘上直到过期为止.cookie的范围就是路径+域,如果某个cook 继续阅读 >>


梁梦迪 17/12/26 21:53:16
…. 1、先来回忆一下因特网网络层最基本的概念,采用自上而下的结构 (1)应用层 应用程序及应用层协议所在的位置(HTTP,FTP),位于这一层的分组叫报文 (2)运输层 应用层产生的报文到了这层,运输层给上一层的报文加上运输层头部(允许接收端的运输层向上一层应用程序交付报文信息,差错控制信息,在应用程序两个端点间传输) (3)网络层 运输层产生的报文段在这一层加上网络层头信息,包括目的地和源的地址,这一层产生的分组叫数据报文(从一台主机移动到另一台主机,完成这一层还需要链路层的帮助)。 (4)链路层 这一层的作用主要是运输,大概过程就是,网络的一个节点将数据报文传递给链路层,链路层再将该数据报文传送给网络层的另一个节点。这一层产生的分组叫帧。(将一个帧从一个网络元素移动到另一个网络元素) (5)物理层 这一层主要就是一些物理媒介。(将帧中的每一个比特从一个节点移动到下一个节点)。 2、网络中的网络 网络中的网络说白了我觉得就是ISP的互联…… (1)网络结构1: 有一个全球承载ISP,所有的接入ISP都连接在全球承载ISP上。这样做就实现了ISP互联了 继续阅读 >>


梁梦迪 17/12/26 21:51:48