C/C++
文章平均质量分 87
yutiannanjingjiangsu
这个作者很懒,什么都没留下…
展开
-
C/C++中求字符串数组的大小---sizeof,strlen,string,length()
#include "iostream"//#include #include //strlen/**是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string的typedef),用于字符串操作。*cstring>是C标准库头文件的C++标准库版本,包含了C风格字符串(NUL即'\0'结尾字符串)相关的一些类型和原创 2013-05-18 12:11:50 · 8576 阅读 · 0 评论 -
C中自带的排序函数qsort
#define NELEMS(array) (sizeof(array)/sizeof(array[0]))//scmp: string compare of *p1 and *p2//p1 p2是是字符串数组的一个元素的指针。字符串数组char* str[](等价于char** str)int scmp(const void *p1, const void *p2){ char原创 2013-05-17 15:15:15 · 761 阅读 · 0 评论 -
C/C++利用system()创建文件夹,如果已存在,则先删除,再创建--windowsXP
//path代表当前目录下的文件夹相对路径void face::mdir_empty(string path) { string absolut_path = "E:\\face_recognizer\\img\\"; absolut_path.append(path); cout<<"创建文件夹:"<<absolut_path<<endl; //创建一个文件夹,如果已存在,则删掉里面的转载 2013-04-13 20:28:29 · 4302 阅读 · 0 评论 -
C/C++以及Java中移位的问题以及负数移位
#include "iostream"typedef unsigned char byte;using namespace std;int main(){ int x = 0x80000002;//-2的原码,但x不是-2,因为计算机中数值是以补码形式存储的 cout<<x<<endl;//-2147483646 int x2 = 0xFFFFFFFE;//-2,说明数值是以补码形原创 2013-08-14 21:53:06 · 1823 阅读 · 0 评论 -
C++和java的多态性比较
C++子类类型的指针赋值给父类类型的指针。如father* fason = new son(3);Java子类类型的引用赋值给父类类型。如father fason = new son();共同点:不能访问子类新增的成员。区别:C++必须在父类方法中加上virtual,否则即使子类重写了父类的方法,fason->print()依然调用的是父类的方法。Jav原创 2013-08-16 16:41:47 · 758 阅读 · 0 评论 -
判断二叉搜索树后序遍历结果是否正确
判断二叉搜索树后序遍历结果是否正确:1、定位最后一个节点作为该树的根,然后把左边部分按小于根和大于根分别作为该根的左、右子树。2、子树也按照1操作。先序类似操作,就是第一个节点作为根节点。中序遍历就是顺序遍历了:从小到大。先、中、后序分别是指根节点先、中、后访问。原创 2013-08-17 13:45:45 · 702 阅读 · 0 评论 -
二分排序:直接插入排序+二分搜索
/** * 二分排序:直接插入排序+二分搜索 * 即用二分搜索定位元素插入位置 */package test;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] a = {转载 2013-08-17 16:02:01 · 639 阅读 · 0 评论 -
JAVA和C/C++的一点区别
1、java中for()之后若不加{},只能执行语句,不能声明变量。C/C++可以2、java泛型,,不能是intC/C++可以原创 2013-08-15 19:10:59 · 620 阅读 · 0 评论 -
C++和JAVA中一些区别,包括指向子类的引用会调用谁的方法,子类构造函数自动调用父类构造函数时,父构造会调用的谁方法
/* * 不同于C++,JAVA中子类总是重写父类函数。C++中子类只重写父类的虚函数。 * 不同于C++,JAVA中指向子类对象的父型引用,依然优先调用子类对象的函数。C++相反。 * 不同于C++,JAVA中子类的构造函数自动调用父类的构造函数,若父类的构造函数中调用了方法,依然是子类优先。C++相反 */package test;class father{ father()原创 2013-09-23 14:07:23 · 1398 阅读 · 0 评论 -
静态加载顺序,类static变量也有默认值(不同于C++),普通成员变量直接赋值语句和非静态语句块的执行位置
package test;public class Shunxu { //加载类时,static语句顺序执行一次 static int v; static int i = print("i");//i 自动默认值:0 static Shunxu obj1 = new Shunxu("obj1");//没有递归加载类的问题 static Shunxu obj2 = new Shunxu原创 2013-09-23 14:30:17 · 2144 阅读 · 0 评论 -
数组名和首地址
#include "iostream"#include "stdio.h"using namespace std;int main(){ //s是该一维的数组名,也是数组的首地址,其基类型大小是数组元素a[]大小 char s[] = "abcde"; //s += 2; // ---error s既是数组名,也是地址 s += 1,表示跳过整个数组了。 cout<<siz原创 2013-09-23 10:13:17 · 986 阅读 · 0 评论 -
也就是说,在满足函数匹配的情况下,编译器优先使用函数匹配编译,函数不能匹配情况下,再使用模板匹配。
转自:http://zhidao.baidu.com/link?url=gklS61bVCYLj2_KzBxPwTO_nPIjB6hXKDM5Rjfgckn9oq8obYl4xnAQv2Dhk4RJViQbQ18YcTrAfeTFNkY3i4_/**1)没有注释掉代码(1)情况下,编译器使用模板函数来进行编译;2)注释掉代码(1)情况下,func(整数)匹配,优先调用函数。也就是转载 2013-09-23 14:15:21 · 958 阅读 · 0 评论 -
Boost和Config++,两款不错的开源C++库
两款不错的开源C++库http://www.hyperrealm.com/libconfig/用于读取.conf文件中的配置信息http://www.boost.org/users/history/详细用途,百度百科---------------可惜,在windows下,不会用。开源的,总感觉有点乱,分不开头文件和链接库,需要重新编译等处理,原创 2013-04-13 09:38:34 · 2032 阅读 · 0 评论 -
windows下cmake配合VS和mingw
windows下eclipse配合Mingw需要改名mingw32-make.exe为make.execmake配合Mingw需要mingw32-make.exe,所以以上改名时更改副本,不要删掉。(mingw安装时选择组建:c和c++即可。安装后,bin路径加入环境变量)第一步:cmake需要*.c等源(头)文件和CMakeCache.txt。-----这部分设置看网上教程。原创 2013-03-31 14:58:25 · 3507 阅读 · 0 评论 -
T-sql(SQL Server)
//sqlserver-----------SQLSERVER--1 查看数据库的版本 --select @@version--2 查看数据库所在机器操作系统参数 --exec master..xp_msver --3 查看数据库启动的参数 --sp_configure --4 查看数据库启动时间 --select convert(varchar(30),log转载 2013-08-19 19:27:27 · 478 阅读 · 0 评论 -
java的中间缓存变量
#include "iostream"using namespace std;int main(){ int j = 0; for(int i=0; i j = j++;//j=j; j++; (不同于java的中间缓存变量原理t=j;j++;j=t) } cout return 0; }原创 2013-08-14 15:35:43 · 725 阅读 · 1 评论 -
sizeof求struct、指针、数组的大小
#include using namespace std;//http://blog.sina.com.cn/s/blog_48d8ae76010002g4.html/**为什么需要字节对齐?计算机组成原理教导我们,这样有助于加快计算机的取数速度,否则就得多花指令周期了。为此,编译器默认会对结构体进行处理(实际上其它地方的数据变量也是如此),让宽度为2的基本数据类型(short等)都位原创 2013-06-07 14:26:08 · 1253 阅读 · 0 评论 -
常量指针与指针常量
#include "stdio.h" #include "cstring" using namespace std;int main(){ int a=248; int b=4; printf("%d\n",b); const int *d=&a;//常量指针,常量a不能改变,但指针的目标可变---const在int左右,作用相同 d = &b;//righ原创 2013-06-29 13:21:18 · 562 阅读 · 0 评论 -
用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序(数组)
#include #define N 100int main() { int i,j,m,n,out_num; j=0; out_num = 0; printf("Please input N and M:\n"); scanf("%d %d",&n,&m); int a[2][N]; for(i=1;i<=n;i++) //是否被取出标志 { a[0][i]=0翻译 2013-07-02 12:07:07 · 2122 阅读 · 1 评论 -
08-12华为技术面试时面试官出的题目
/************************************************************************//*绘制 * * * * ** * * * * * *原创 2013-08-12 20:56:25 · 1182 阅读 · 0 评论 -
操作符重载:类成员函数和全局函数
#include "iostream"using namespace std;class CA{ public: int l; int j; public: CA(){ cout l = 1; j = 2; }原创 2013-07-27 13:20:06 · 1375 阅读 · 0 评论 -
C++重载运算符+,发现一些问题,暂未解决
#include "iostream"using namespace std;class CA{ public: int l; int j; public: CA(){ cout<<"hello"<<endl; l = 1; j = 2; }原创 2013-07-27 13:04:35 · 1001 阅读 · 0 评论 -
程序员面试宝典13.1的单链表所有程序,包括注释理解
#include "iostream"#include "stdio.h"#include "string.h"#include "conio.h"using namespace std;//节点指针,即节点地址typedef struct student{ int data; struct student *next;}node; //直转载 2013-07-19 10:38:22 · 770 阅读 · 0 评论 -
用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C/C++程序(链表)
//用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序#include#include#includeusing namespace std; //new delete-------建议用malloc free,这样就C了//循环链表,每次删除struct node{ int value; node* next;};//需要指针的引用原创 2013-07-02 13:09:15 · 2070 阅读 · 0 评论 -
union和struct类型的大小计算
原地址:http://blog.sina.com.cn/s/blog_6a6b14100100zrb5.htmlunion和struct类型的大小计算:对于union,对齐的大小是最大的基本元素的对齐大小,对象的大小必须是该基本元素大小的整数倍。如:Union U1{Char a[9];Int b;};对齐为4字节对齐,大小为大于9并且为转载 2013-07-01 11:56:29 · 645 阅读 · 0 评论 -
考察二进制向int或uint转换时的最高位处理
//最高位的变化#include "stdio.h"#include "cstring"using namespace std;int main(){ unsigned short A = 10;//2B,16bits,0000 0000 0000 1010 //若unsigned short输出,~A = 1111 1111 1111 0101 = 2^16 - 11原创 2013-06-29 13:19:29 · 1918 阅读 · 0 评论 -
sizeof和new的开销空间
选自:《编程珠玑第二版》附录3/* Copyright (C) 1999 Lucent Technologies *//* From 'Programming Pearls' by Jon Bentley *//* spacemod.cpp -- simple model for C++ space */#include using namespace std;#def转载 2013-06-07 18:39:51 · 953 阅读 · 0 评论 -
C/C++中最常用字符串函数--不是指string
http://wenku.baidu.com/view/f84c9a6148d7c1c708a1452a.html,建议看看,更全strlensizeofstrcpystrcmpstrchrstrstrmallocreallocmemmovememcpy在ANSI C的标准库里定义了两个相关的函数: memcpy的速度快,但是如果源位置和目原创 2013-05-17 16:43:33 · 591 阅读 · 0 评论 -
寻找容器vector中出现最多的元素以及出现的次数
template static T max_num(vector A, int& num);//A中出现最多的元素,以及出现的次数templateinline T sortvect::max_num(vector A, int& num) { //遍历,获得每个元素出现的次数 vector A_per; for(int r=0; r<A.size(); r++){ T tm转载 2013-05-12 17:59:01 · 8176 阅读 · 1 评论 -
快速排序法之一
//mian vector temp; vector id; for(int r=0; r<10;r++){ int t = rand()%100+1;//0~100 temp.push_back(t); cout<<t<<" "; } cout<<endl; sortvect::quick_sort(temp,id); for(int r=0;原创 2013-05-12 17:21:48 · 581 阅读 · 0 评论 -
从文件夹中读取子文件夹内带有指定后缀如.bmp文件的C++实现,并读取子文件夹后缀数字
void face::read_img_yalefacesA() { GetFileList( img_folder,"AllDir",".bmp","outyalefacesA.txt",img_name,img_lable);}/**===============从一个文件夹(的子文件夹*9----否则类别标签无效)中读取所有满足后缀为PostfixType的文件名=========原创 2013-04-08 20:33:45 · 1301 阅读 · 0 评论 -
多进制输出x 和sprintf用法
//多进制输出x//sprintf用法#include "iostream"#include using namespace std;/************************************************************************//* cout并不支持输出二进制,只支持八、十、十六进制三种方式,那该怎么办呢?大家是转载 2013-08-12 21:47:24 · 1548 阅读 · 0 评论 -
写一个函数int Func(int* A, int nSize), 使A把0移至后面,非0整数移至数组前面 并保持有序,返回值为原数据中第一个元素为0的下标。
/**int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)*///设计思路:首先,将0元素置后;然后对非0元素快速排序#include "stdio原创 2013-07-03 12:27:40 · 4339 阅读 · 0 评论 -
scanf()、getchar()、gets()、cin之间的区别
scanf()、getchar()、gets()、cin之间的区别http://blog.sina.com.cn/s/blog_6c26d57b01011qzn.htmlscanf()、getchar()、gets()第一:要注意不同的函数是否接受空格符、是否舍弃最后的回车符的问题!读取字符时:scanf()以Space、Enter、Tab结束一次输入,不会舍弃最后转载 2013-05-17 12:08:29 · 890 阅读 · 0 评论 -
二叉树_自己写的,不是很好,但基本功能都实现了
//============================================================================// Name : tree.cpp// Author : zhoulei// Version :// Copyright : Your copyright notice// Description原创 2013-07-02 13:18:49 · 751 阅读 · 0 评论 -
C++和java类对象赋值----值传递还是址传递
引用和址传递是有些不同的,这里只取相同的部分---不要被误导。假设class A,class B分别是C++和java的类。C++A的对象生成方法:1)A x; //调用构造函数生成x。后面还可以 x = y,调用拷贝构造函数,可能是值传递,也可能是部分引用,取决于class A是否重载“=”。2)A原创 2013-05-15 20:49:16 · 1721 阅读 · 0 评论