C++
文章平均质量分 55
Lc_summer
这个作者很懒,什么都没留下…
展开
-
C++读取txt文件到数组,元素个数未知(判断文件结束)
void GetFile(){ ifstream infile; //方案1:利用eof判断是否到文件末尾 int item1; infile.open("demo.txt"); cout << "方案一的结果如下:" << endl; vector<int> res1; while (!infile.eof()) { infile >> item1; res1.push_back(item1); } infile.close原创 2021-12-16 12:09:50 · 1934 阅读 · 0 评论 -
C++多行输入且行数未知
#include<iostream>using namespace std;#include<vector>#include<string>#include<sstream>/* 如何输入多行数据,形如: a 12 13 b 14 15 c 16 17 ... 输入的行数未知*/void fun(){ vector<string> ar; vector<string> name; vector<原创 2021-09-20 19:42:16 · 1596 阅读 · 1 评论 -
返回数组指针
由于数组不能被拷贝,所以函数不能返回数组。不过,函数可以返回数组的指针或引用。虽然从语法上来说,想要定义一个返回数组的指针或引用的函数比较麻烦,但是任然有一些方法可以来简化这个操作,其中最简单方法就是前面谈到了类型别名:typedef int arrT[10]; //arrT是一个类型别名,表示的类型是含有10个int的数组using arrT = int[10]; //同上arrT* fun(int i); //返回一个指向含有10个int数组的指针 其中arrT是含有10个整数的原创 2021-05-27 14:41:01 · 1193 阅读 · 0 评论 -
C++基础知识合集
复合类型复合类型是指基于其他类型定义的变量,通常有引用和指针;引用:简单的理解就是为一个对象起别名,就相当于小时候经常给同学起外号一样,是为一个已经存在的人起外号,那么也就是说引用变量必须初始化,且初始化为已经存在的对象。引用的使用方法是 :& + 引用名 = 被引用的对象比如:int a = 2;int &b = a; //合法int &c = 2; //非法,2是右值,引用这里指的是左值对象,右值引用前面说过,是 &&d = 2;int原创 2021-05-13 21:56:14 · 648 阅读 · 1 评论 -
函数重载和运算符重载
函数重载和运算符重载C++允许在同一个作用域内中的某个函数或者运算符指定多个定义,分别有函数重载和运算符重载,重载就是函数和方法具有相同的名称但是它们的参数列表不同,调用重载函数或者运算符时会根据参数列表进行匹配找到最适合的定义。函数重载同名函数参数列表不同:1.参数的个数不同;2.参数的类型不同;特别注意:不能根据函数的返回值不同来区分不同的重载函数class PrintData {public: void print(int i){ cout << "整型数为 :原创 2021-05-13 17:55:26 · 1350 阅读 · 0 评论 -
函数的返回值(值,指针,引用作为函数的返回值)
函数的返回值无返回值的函数//没有返回值的return语句只能用于返回值类型为void的函数,无返回值的函数//最后不一定非要有return语句,函数的最后一句会隐式地执行returnvoid printArray(){ for (int i = 0; i < 10; i++) cout << i << " "; //return;}//有返回值的函数//return语句的第二种形式提供看函数的结果,只要函数的返回值类型不是void//则该返原创 2021-04-14 20:02:40 · 443 阅读 · 0 评论 -
函数的参数传递(值传递,引用传递,指针传递)
函数的参数传递形式传递值,传递时形参将会生成新的变量初始化为实参的值,形参的改变不会影响实参传递引用,相当于形参是实参的别名,形参的改变会导致实参的改变传递指针,传递时形参将会生成新的指针变量初始化为实参的值,形参指向的地址改变不会影响实参,但是在不改变指向的时候形参指向的值改变会导致实参指向值的改变函数的值传递void swap1(int a, int b){ int c = a; a = b; b = c;}函数的引用传递void swap2(int& a, int原创 2021-04-14 09:04:45 · 408 阅读 · 1 评论 -
一维数组作为函数参数的使用
一维数组作为函数参数数组有两个特性1.不允许拷贝数组2.使用数组时会将其转换成指针由于不能拷贝数组,那么我们不能按照值传递的方式使用数组,又因为数组在使用的时候会转换成指针,所以可以通过指针传递使用数组,注意,指针是以值传递的方式到函数中,也就是说,函数中的指针其实是实际数组首地址的副本,它们都可以访问数组的元素,但是函数中的指针并不能改变实际数组首地址的指向,只能改变数组中的元素使用标记指定数组的长度//char* 数组使用标记\0标记数组的末尾void printChar(char*原创 2021-04-13 10:50:25 · 1424 阅读 · 0 评论 -
结构体指针作为参数传递
结构体指针作为参数传递函数中的参数列表其实际上都是原来实参的副本,即下面代码中的root,指的是main函数中Troot的副本,由于是指针,所以副本和实参指向的都是同一个内存单元,如若只是改变副本所指内存单元的数据,那么实参内存所指的数据也同样被改变;但是由于在函数内部,改变了副本的内存单元,实参的内存单元并没有发生改变,所以实参的数据并没有跟着副本一起改变。如果想改变实参的数据,那么应该传递结构体指针变量的指针或者其引用,1.第一种方式,结构体指针变量的指针本质上就是这个变量的地址,通过改变这个指针指原创 2021-01-27 22:35:28 · 4655 阅读 · 0 评论 -
C++string与int,long,float,double相互转化
string 转int,long,float,double //string 转换 int,long,float,double string s = "123"; int i_num = stoi(s); long l_num = stol(s); float f_num = stof(s); double d_num = stod(s);int,long,float,double转string //int,long,float,double 转换string string s1 =原创 2020-11-27 15:38:08 · 271 阅读 · 0 评论 -
引用,指针,值传递总结
引用和指针参数使用的原因1.调用函数时要修改传入的参数2.传入的数据对象太大时通过传递引用可以提高程序运行的效率值传递数据量比较小,内置数据类型或者小型结构,且不需要改变传入的参数选用值传递引用传递传递类对象指针传递传递数组对象引用和指针都可以数据对象是较大的结构...原创 2020-11-11 16:00:08 · 84 阅读 · 0 评论 -
当const遇上了指针
const和指针指针指向一个常量对象将指针指向常量对象,这样可以防止使用指针来修改所指向的值int num = 6;const int *p = #//*p = 8 非法,不能改变指向常量对象的值 但是,对象num本身不是常量可以被修改num = 8 //合法的也就是说,它指向的那个值并不是常量,因此我们不能通过p来修改它指向的值但是可以修改num的值从而修改p指向的值将指针本身申明为常量int t1 =1;int t2 =2;const int *p1 = &原创 2020-11-11 14:47:13 · 66 阅读 · 1 评论 -
C++中二维数组名和指针作为函数参数
二维数组名函数原型为void PrintAr2(int arry[][3], int row);第一个参数表示传递的二维数组的指针,并规定了其列的数量,第二个参数规定了二维数组行的数量void PrintAr2(int arry[][3], int row){ for (int i = 0; i < row; i++) { for (int j = 0; j < 3; j++) cout << arry[i][j] << " "; cout原创 2020-11-11 14:46:20 · 3734 阅读 · 0 评论 -
数组名和指针作为函数参数
传递数组名参数列表为数组名和数组的大小,arry[]表示传递的是个指向数组首地址的指针,但同时它还指向数组的第一个元素void PrintArray(int arry[], int n){ for (int i = 0; i < n; i++) cout << arry[i] << " "; cout << endl;}传递指针参数列表为指针名和数组的大小,p表示传递的是个指向数组首地址的指针void PrintPtr(int *p, int原创 2020-11-11 13:14:55 · 1188 阅读 · 0 评论 -
c++的编程模块
函数#include<iosteam>using namespace std;void Print();int GetBiggerNum(int a,int b);int main(){ Print(); int result = GetBiggerNum(3,4); return 0;}函数定义无返回值的函数void functionName(parameterList){ //函数的实现部分 return;}//打印hello world !void原创 2020-11-11 12:16:46 · 439 阅读 · 0 评论 -
正确使用指针
申明指针int *p;给指针赋值int a = 6; //p = 5; 非法赋值,指针本身是存放地址的,应该将地址类型的值赋值给指针p = &a; //申明一个int变量,将其地址赋值给指针p使用指针cout << *p << endl;// *+指针名访问指针所指地址里存放的值...原创 2020-11-11 11:43:11 · 73 阅读 · 0 评论 -
浮点数的特性
浮点数的优点1.可以表示整数之间的值;2.由于存在缩放因子,它们可以表示的范围要大得多。浮点数的缺点1.计算效率低;2.精度会降低.#include <iostream>int main(){ float f_demo = 2.32E+22f; float f_demo1 = f_demo + 1.0f; cout << "f_demo = " <...原创 2020-01-06 10:03:44 · 1707 阅读 · 0 评论 -
整型数
整型数的限制INT_MAX //最大的int型数SHRT_MAX //最大的short型数LONG_MAX //最大的long型数原创 2020-01-04 19:33:57 · 260 阅读 · 0 评论 -
认识c++程序的基本结构
开始学习C++作为接口的函数头int main()int main()作为函数头,表明main()函数可以给调用它的函数返回一个int型的数值,且不从调用它的函数那里获取任何信息。main()为什么不使用其他名称main()命名是语法规定必须这么做,通常main()函数作为一个程序入口,程序从main()开始执行,但也有例外,比如windows编程中,可以编写DDL模板,这是其他Wind...原创 2020-01-04 18:54:48 · 999 阅读 · 0 评论