关闭

Ubuntu不能利用ssh进行远程连接的解决方案及其解决过程中出现的问题

Ubuntu不能利用ssh进行远程连接的解决方案及其解决过程中出现的问题...
阅读(1130) 评论(0)

用户不在sudoers文件中解决方法以及sudoer文件修改错误后的恢复方法

本文解决了用户不在/etc/sudoers文件中导致用户不能获取root权限的问题以及sudoer文件修改错误后的恢复方法...
阅读(3542) 评论(0)

getline(),cin.getline(),cin.get()区别

C++中有两个getline函数,这两个函数分别定义在不同的头文件中 1、getline()是定义在头文件中,功能是取一行字符串,读到换行符r结束,并且抛弃换行符,如果需要读取字符,则接着下一行读取。        getline(cin,str);第一个参数是输入流对象,第二个参数是字符串对象,该函数将istream参数作为返回值。如while(getline(cin, line))...
阅读(442) 评论(0)

C++内存管理篇整理

C++内存管理篇整理 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由...
阅读(264) 评论(0)

TCP/IP协议头部结构体

TCP/IP协议头部结构体(网摘小结) TCP/IP协议头部结构体(转)   网络协议结构体定义 // i386 is little_endian.    #ifndef LITTLE_ENDIAN    #define LITTLE_ENDIAN   (1)   //BYTE ORDER    #else    #error Redefine LITTLE_ORD...
阅读(301) 评论(0)

C++ 常见崩溃问题分析

一、前言 从事自动化测试平台开发的编程实践中,遭遇了几个程序崩溃问题,解决它们颇费了不少心思,解决过程中的曲折和彻夜的辗转反侧却历历在目,一直寻思写点东西,为这段难忘的经历留点纪念,总结惨痛的教训带来的经验,以期通过自己的经历为他人和自己带来福祉:写出更高质量的程序;   由于 C 和 C++ 这两种语言血缘非常近,文本亦对 C 编程语言有借鉴作用;   二、C++ ...
阅读(402) 评论(0)

c++中 类数据成员的定义、声明总结

C++为类中提供类成员的初始化列表 类对象的构造顺序是这样的: 1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员 2.进入构造函数后在构造函数中执行一般计算   1.类里面的任何成员变量在定义时是不能初始化的。   2.一般的数据成员可以在构造函数中初始化。   3.const数据成员必须在构造函数的初始化列表中初始化。   4.static要在类的定义外面初始化。...
阅读(488) 评论(0)

C/C++变量命名习惯

C_C++变量命名规则 变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则:   1、 变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。 2、 第一个字母必须是字母或者下划线开头。 3、 不能使用C++关键字来命名变量,以免冲突。 4、 变量名区分大小写。   变量命名规则: 一、    ...
阅读(274) 评论(0)

C++的内存管理

这篇文章是我在学习高质量C++/C编程指南中的第7章"内存管理"后的一篇笔记,之前我也写过相关的文章指针以及内存分配,但我感觉那篇还不是很好,这篇我很把它更完善一些 一.内存的常见分配方式   1. 从静态区分配,一般是全局变量和static类型变量   2.从栈区分配内存,一般是局部的变量,会随着所在函数的结束而自动释放   3.从堆中分配,一般是使用手动分配,使用mallo...
阅读(209) 评论(0)

Linux 用户和组文件解释(总结)

一、用户文件:/etc/passwd [root@pinfun6 ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash 1 2 3 4 5 6 7 | | | | | | | | | | | | | |--用户默认使用的SHELL | | | | | |...
阅读(308) 评论(0)

详解 /etc/group

Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件,Linux /etc/group文件相对另外两个文件内容相对较少,这里对这一文件进行以下分析。 用户组的所有信息都存放在/etc/group文件中 将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组...
阅读(258) 评论(0)

详解/etc/shadow

Linux中 /etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由 pwconv 命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开,文件的每行是8个冒号分割的9个域,格式如下:  username: passwd: lastchg: min: max: warn: inactive: e...
阅读(349) 评论(0)

详解Linux /etc/passwd文件

在Linux /etc/passwd文件中每个用户都有一个对应的记录行,它记录了这个用户的一些基本属性。系统管理员经常会接触到这个文件的修改以完成对用户的管理工作。这个文件对所有用户都是可读的。但是Linux /etc/passwd文件中都有些什么内容呢? 它的内容类似下面的例子: #cat/etc/passwd root:x:0:0:Superuser:/: daemon:x:1:1...
阅读(312) 评论(0)

C++中如何修改const变量

一、结论 声明:不同于C语言的const变量修改问题(可以通过指针间接修改const变量的值),这里只讨论C++ 里的const。 C++ const 修饰符,表示常量,即如果以后保证不会修改则声明为const,否则若要修改,那一开始为什么还要声明为const呢? 根据C++标准,对于修改const变量,属于:未定义行为(指行为不可预测的计算机代码),这样一来此行为取决于各种编译...
阅读(233) 评论(0)

排序算法小结

从以下几个方面来比较排序算法: 1. 算法的时间和空间复杂度 2. 排序的稳定性 3. 算法结构的复杂度 4. 参加排序的数据规模 排序的稳定性: 稳定排序方法: 插入排序、冒泡排序、二路归并排序、基数排序是稳定排序算法; 不稳定排序方法: 选择排序、谢尔排序、快速排序、堆积排序是不稳定排序算法。 算法复杂度比较:   ...
阅读(440) 评论(0)

C++内联函数与宏定义的区别

用内联取代宏: 1.内联函数在运行时可调试,而宏定义不可以; 2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会;  3.内联函数可以访问类的成员变量,宏定义则不能;  4.在类中声明同时定义的成员函数,自动转化为内联函数。 文章(一) 内联函数与宏定义   在C中,常用预处理语句#define来代替一个函数定义。例如:     #d...
阅读(265) 评论(0)

海量数据面试题----分而治之/hash映射 + hash统计 + 堆/快速/归并排序

1、从set/map谈到hashtable/hash_map/hash_set    稍后本文第二部分中将多次提到hash_map/hash_set,下面稍稍介绍下这些容器,以作为基础准备。一般来说,STL容器分两种:     序列式容器(vector/list/deque/stack/queue/heap),         关联式容器。关联式容器又分为set(集合)和map(...
阅读(692) 评论(0)

5亿个数找中位数

找中位数最容易想到的方法就是,先对序列进行排序,取中位数,然而5亿个数要想全部读入内存需要将近2GB空间。 一种想法是采用外部排序的方法,在排序的过程中记录数据个数,找到中位数。首先采用hash() % 100,把数据分到100个文件中,然后对每个文件分别在内存中进行快速排序,再将100个小文件进行合并,并在合并过程中寻找中位数,时间复杂度是O(nlogn)   另外一种方法是,...
阅读(606) 评论(0)

右左法则----复杂指针解析

首先看看如下一个声明:   int* ( *( *fun )( int* ) )[10];   这是一个会让初学者感到头晕目眩、感到恐惧的函数指针声明。在熟练掌握C/C++的声明语法之前,不学习一定的规则,想理解好这类复杂声明是比较困难的。   C/C++所有复杂的声明结构,都是由各种声明嵌套构成的。如何解读复杂指针声明?右左法则是一个很著名、很有效的方法。不过,右左法则其实并不是C/...
阅读(259) 评论(0)

两次free()或delete()同一个指针地址会怎么样。

#include "stdafx.h" #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //cout<<"hello"; //int *p=(int*)malloc(sizeof(int)); //*p=1; //cout<<*p<<endl; //free(p);//free()之后相当于把内...
阅读(1331) 评论(0)
36条 共2页1 2 下一页 尾页
    个人资料
    • 访问:30745次
    • 积分:557
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:12篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论