c++
qq_2773878606
学生
展开
-
如何用auto_ptr做为函数的参数进行传递
auto_ptr跟指针的原理是一样的,只不过在使用会自动释放内存。但是在函数中作为auto_ptr参数使用时,一定要注意控制权的转移问题。void testptrAddNumber(MCMDTLog* mmcLog){ mmcLog->addNumber();}void func(auto_ptr<int>& ap){ cout <...原创 2018-11-15 09:31:48 · 1444 阅读 · 0 评论 -
int (*a)[10] 和 int *a[10] 的区别
int *a[10] :数组指针。数组a里存放的是10个int型指针 int (*a)[10] :a是指针,指向一个数组。此数组有10个int型元素 int *a[10] 先找到声明符a,然后向右看,有[]说明a是个数组,再向左看,是int *,说明数组中的每个元素是int *。所以这是一个存放int指针的数组。 int(*a)[10] 先找到声明符a,被括号括着,先看括号内的(优转载 2015-09-20 15:43:35 · 597 阅读 · 2 评论 -
int * * a[10] int * (*a)[10]和 int(*a[10])() 是什么意思
int* (*a)[10];a是一个指向包含10个int型指针元素的数组。比如:#include int main(){ // 定义数组,包含10个int* int* b[10]; for(int i = 0; i < 10; ++i) b[i] = new int(i+1); int* (*a)[10] = &b; /转载 2015-09-20 15:45:05 · 770 阅读 · 0 评论 -
fgets函数
fgets从指定的文件中读一行字符到调用者提供的缓冲区中,gets从标准输入读一行字符到调用者提供的缓冲区中。#include char *fgets(char *s, int size, FILE *stream);char *gets(char *s);返回值:成功时s指向哪返回的指针就指向哪,出错或者读到文件末尾时返回NULLgets函数无需解释,Man Page的BUG原创 2015-09-14 20:30:42 · 362 阅读 · 0 评论 -
c++ 实例精通(1)
//引入必须的头文件#include #include //宏定义,要排序的数字个数#define MAX_NUM 10//宏定义,判断数组中的数字,并将较大的一个向后移动#define SWITCH(ar, i) if(ar[i] < ar[i + 1]){ \ int nTemp = ar[i]; \ ar[i] = nNums[i + 1]; \ ar[i + 1] =原创 2015-09-14 20:34:31 · 301 阅读 · 0 评论 -
This function or variable may be unsafe
1>------ 已启动生成: 项目: 20130925, 配置: Debug Win32 ------1> stdafx.cpp1>d:\code\20130925\20130925\stdafx.cpp(18): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s原创 2015-09-14 21:12:42 · 299 阅读 · 0 评论 -
Building an MFC project for a non-Unicode character set is deprecated
VS2013多字节工程问题使用VS2013编译旧版VC++程序时,提示Building an MFC project for a non-Unicode character set is deprecated,微软提供了解决方案。一、错误信息[cpp] view plaincopyprint?"font-famil转载 2015-09-14 20:48:25 · 579 阅读 · 0 评论 -
数组和指针的长度
testArray是一个包含8个元素的int类型数组,请问表达式:sizeof(testArray)/sizeof(testArray[0])的值是_____.答案:8分析:sizeof(testArray) 是数组大小 8*4 =32;sizeof(testArray[0]) 是 testArray[0]的大小 4;所以 sizeof(t原创 2015-09-27 19:40:37 · 607 阅读 · 0 评论 -
C++ Vector用法深入剖析
C++ Vector应用方式是比较特殊的,我们将会在这篇文章中针对于它的应用方式进行一个详细的介绍,希望大家能充分掌握这一应用技巧。C++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的。在这里我们将会为大家详细介绍一下C++ Vector的相关应用技巧及基本内容,希望能给大家带来一些帮助。C++头文件包含内容概览C+原创 2015-09-08 14:19:22 · 496 阅读 · 0 评论 -
C++ Vector 使用总结
注意,在使用前要包含vector对应的头文件:#includevector是同一种类型的对 象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库负责管理存储元素的相关内存。我们把vector称为容器,是因为它可以包 含其他对象。一个容器中的所有对象都必须是同一种类型的。我们将在第9章更详细地介绍容器。使用vector之前,必须包含相应的头文件。本书给出原创 2015-09-27 20:40:38 · 414 阅读 · 0 评论 -
运算符优先级
Initialize integer i as 0, what's the value of i after the following operation?i += i > 0 ? i++ : i--;输出:-1分析:+=的优先级最低,所以i+=i>0?i++:i--直接将i>0?i++:i--的值也就是-1返回,i+=-1最后的结果是-1具体过程:原创 2015-09-27 19:34:33 · 336 阅读 · 0 评论 -
C++ string 类常用函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常原创 2015-09-27 20:53:21 · 354 阅读 · 0 评论 -
在C语言中,double、long、unsigned、int、char类型数据所占字节数
和机器字长及编译器有关系:所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):1 sizeof(short int)2 sizeof(int)3 short int至少应为16位(2字节)4 long int至少应为32位。unsigned 是无符号的意思。例如: 16位编译器 char :1原创 2015-09-27 20:51:41 · 729 阅读 · 0 评论 -
c++中的list用法
#include #include #include #include using namespace std; //创建一个list容器的实例LISTINT typedef list LISTINT; //创建一个list容器的实例LISTCHAR typedef list LISTCHAR; void main(void) { //--------原创 2015-09-27 20:48:14 · 446 阅读 · 0 评论 -
C++中的vector使用范例-
C++中的vector使用范例一、概述vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小。例如:// c语言风格int myHouse[100] ;// 采用ve原创 2015-09-27 20:44:24 · 688 阅读 · 1 评论 -
c++读取txt中每行的数据到数组中
#include#include#include#include#includeusing namespace std;int main(){ // 定义输入文件流类对象infile //string filename = "E:data1.txt"; //ofstream outFile(filename.c_str(), ios::app); //在文件末尾写入原创 2015-10-11 17:09:33 · 10292 阅读 · 1 评论 -
C++中的c_str()函数用法
语法: const char *c_str();c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针 比如:最好不要这样: cha转载 2015-10-11 20:58:59 · 391 阅读 · 0 评论 -
c++在txt中每行写入数据和每行输出
#include#include#include#includeusing namespace std;int main(){ // 定义输入文件流类对象infile string filename = "E:data1.txt"; //ofstream outFile(filename.c_str(), ios::app); //在文件末尾写入 //for (int原创 2015-10-11 16:34:01 · 2425 阅读 · 0 评论 -
c++中虚函数和纯虚函数定义
只有用virtual声明类的成员函数,使之成为虚函数,不能将类外的普通函数声明为虚函数。因为虚函数的作用是允许在派生类中对基类的虚函数重新定义。所以虚函数只能用于类的继承层次结构中。 一个成员函数被声明为虚函数后,在同一类族中的类就不能再定义一个非virtual的但与该虚函数具有相同的参数(包括个数和类型)和函数返回值类型的同名函数。 根据什么考虑是否把一个成员函数声明...转载 2018-11-08 10:06:07 · 1429 阅读 · 0 评论 -
c/c++头文件中#ifndef/#define/#endif的用法
想必很多人都看过“头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?头文件被重复引用了,会产生什么后果?是不是所有的头文件中都要加入#ifndef/#define/#endif 这些代码? 1、 其实“被重复引用”是指一个头文件在同一个cpp文件中被include了多次,这种错误常常是由于include嵌套造成...转载 2018-11-08 08:54:24 · 1776 阅读 · 1 评论 -
C++类里面的哪些成员函数是内联函数?
类定义的内联函数分为以下3种:1.隐式内联class Person{public: Person(const string &name) { Name = name; } void printName()//printName 定义在类里面是隐式内联函数 { cout << Name << endl; }private: s...转载 2018-11-05 19:33:03 · 12017 阅读 · 6 评论 -
auto_ptr使用总结
(1) auto_ptr的意义auto_ptr是一种智能指针,当系统异常退出的时候避免资源泄漏(内存)。其他的资源还对应其他的智能指针。(2) auto_ptr的使用std::auto_ptr<int> test(new int(1));test将是一个auto_ptr的对象,使用一个int指针进行初始化。test可以象其他指针一样使用,如使用* 使用->但是++不可以使用,以后...转载 2018-04-10 17:48:28 · 281 阅读 · 0 评论 -
istringstream
istringstream类用于执行C++风格的字符串流的输入操作。具体分析istringstream类描述:从流中提取数据,支持 >> 操作这里字符串可以包括多个单词,单词之间使用空格分开istringstream的构造函数原形: istringstream::istringstream(string str); 初始化:使用字符串进行初始化istr原创 2016-07-07 09:11:36 · 1072 阅读 · 0 评论 -
统计0到n之间1的个数
问题描述给定一个十进制整数N,求出从1到N的所有整数中出现”1”的个数。 例如:N=2时 1,2出现了1个 “1” 。N=12时 1,2,3,4,5,6,7,8,9,10,11,12。出现了5个“1”。1、暴力求解法//暴力求解long CountOnes(long n){ int i,j;//循环变量 int ncount=0;//计数 for原创 2016-07-27 22:26:11 · 753 阅读 · 0 评论 -
热门智力题 过桥问题和倒水问题
过桥问题和倒水问题都是笔试面试中的热门智力题,不但微软、GOOGLE、百度、腾讯等公司采用,甚至在IQ测试与公务员考试中都能见到。本文不但教你如何快速用手算来解决这两种问题,并且教你如何用程序代码来计算这两种问题。绝对让你大有收获。一.过桥问题在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只转载 2016-07-27 11:32:20 · 464 阅读 · 0 评论 -
正数减法
两个任意长度的正数相减,这两个正数可以带小数点,也可以是整数,请输出结果。 输入的字符串中,不会出现除了数字与小数点以外的其它字符,不会出现多个小数点以及小数点在第一个字符的位置等非法情况,所以考生的程序中无须考虑输入的数值字符串非法的情况。详细要求以及约束:1.输入均为正数,但输出可能为负数;2.输入输出均为字符串形式;3.如果输出是正数则不需要带符号,如果为负数原创 2016-07-11 16:16:00 · 753 阅读 · 0 评论 -
数组和指针
1、注意:类型T的指针和类型T的数组名并非同一个类型。例如:char a[6] 与 extern char *a并不能匹配2、char a[] 与 char *a是不一样的。例如:char a[6]请求预留6个字符的位置,并用“a”表示,实际是说有一个称为“a”的位置,可以放入6个字符。sizeof(a)为6,但是:如果把a做实参,在被调用函数用对形参做sizeof,就只取转载 2015-12-01 19:41:10 · 244 阅读 · 0 评论 -
C++中的istringstream 的用法
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含这个头文件。istringstream类用于执行C++风格的串流的输入操作。ostringstream类用于执行C风格的串流的输出操作。strstream类同时可以支持C风格的串流的输入输出操作。istringstream的构造函数原形如下:is原创 2015-12-12 18:50:37 · 569 阅读 · 1 评论 -
C++ STL算法之accumulate函数
1. 介绍 用来计算特定范围内(包括连续的部分和初始值)所有元素的和,除此之外,还可以用指定的二进制操作来计算特定范围内的元素结果。其头文件在numeric中。 accumulate原函数声明定义如下: templateclass InputIterator, class Type> Type accumulate( InputIterator _F转载 2015-11-24 16:26:51 · 839 阅读 · 0 评论 -
指针与二维数组
#include int main(){ char str[ ][10]={"China","Beijing"}; char *p; p = str[0]; printf("%s\n",p+10); while(1); return 0;}/*p输出chinap+1输出hina…………P+4输出a;从P+5到p+9,无转载 2015-09-24 16:59:50 · 575 阅读 · 0 评论 -
继承类的运用
#include<iostream>#include<string>using namespace std;typedef char strings[20];class employee{private: strings mname; double msalary; strings mbirthday;public: char* getname()原创 2015-09-22 22:31:43 · 374 阅读 · 0 评论 -
C语言宏定义使用技巧
1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char boolean;原创 2015-09-27 20:55:19 · 321 阅读 · 0 评论 -
关于static变量,请选择下面所有说法正确的内容
若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static原创 2015-09-27 19:42:22 · 10149 阅读 · 0 评论 -
面向对象的多态性(3)
1、纯虚函数当在基类中不能为虚函数给出一个有意义的实现时(就是没定义函数体中的具体内容),可以声明为纯虚函数,纯虚函数可以交给派生类来完成,纯虚函数的作用只是为派生类提供一个一致的借口,,,纯虚函数的调用形式:virtual #includeusing namespace std;class point{protected: int x0, y0;public:原创 2015-09-01 18:58:49 · 396 阅读 · 0 评论 -
面向对象的多态性(2)
1、虚函数在c++中,可以调用虚函数来实现运行时的多态性,,这样可以进行函数的重载虚函数的定义是在基类中进行的,,当吧基类中的某一个成员函数定义成虚函数之后,就可以在派生类中重新定义,在派生类重新定义的时候,函数的原型包含函数参数,函数名,参数的个数和类型,以及参数的顺序都必须和基类中的函数一样虚函数的定义形式:virtual { 函数体}该函数定原创 2015-09-01 18:28:56 · 470 阅读 · 0 评论 -
c++ 类的继承
类的继承有三种方式:1、公有继承 2、私有继承3、保护继承基类中的私有成员在派生类中时隐藏的,只能在基类中访问派生类中的成员不能访问基类中的私有成员,但是可以访问基类中的公有成员和保护成员。派生类从基类公有继承时,基类的公有成员和保护成员仍然是派生类中的公有成员和保护成员私有继承时,公有成员和保护成员变成私有成员保护继承时,基类的额公有成员变成保护成原创 2015-08-04 19:15:06 · 381 阅读 · 0 评论 -
友元函数的几种形式
(1)、友元函数友元函数定义后可以访问类对象的所有成员,包含私有公有和保护成员友元函数必须在类定义时进行声明,声明时在函数前面添加 friend关键字,该声明可以放到公有或者私有成员中,友元函数的声明方式:friend #include#includeusing namespace std;class rectangle{private: d原创 2015-08-04 12:18:32 · 1563 阅读 · 0 评论 -
运载符重载
1、运载符重载的调用形式《返回形式》operator《运算符》(参数表)有两种调用形式:显示的调用:a.operator+(b)隐士的调用: a+b函数例子:#includeusing namespace std;class A{private: int n;public: A(int x = 0) { n = x; } int getn()原创 2015-08-31 22:08:49 · 533 阅读 · 0 评论 -
c++派生类和基类的构造函数和析构函数
基类和派生类的构造函数顺序,先调用基类的构造函数,在调用派生类的构造函数,析构函数而言,先调用派生类的析构函数,再调用基类的析构函数#includeusing namespace std;class base{private: int i;public: base(int n) { cout << " gouzaohanshu" << endl; i =原创 2015-08-04 19:23:43 · 752 阅读 · 0 评论 -
c++静态成员
静态成员表示所有类对象都可以使用,static成员数据必须在类外进行初始会。Int student::cout=0;可以直接使用作用域::从类中直接条用static成员,或者通过类对象,对象指针间接调用student::count=0; 调用数据成员int n=student::getcount() 调用成员函数类对象访问:student stu1;s原创 2015-08-04 14:32:13 · 405 阅读 · 0 评论