首页 > 编程语言 >C++ Primer 第一章:一些尝试和认识

C++ Primer 第一章:一些尝试和认识

时间:2023-09-11 22:58:25浏览次数:44  
标签:std 头文件 cout ++ C++ 第一章 注释 Primer

Warning

以下是一些非常无聊的知识点,附以肤浅的理解和解释,仅供参考,切勿轻信。

C++ Primer 1.4.4 示例代码

PS: 这段代码没什么用。

#include <iostream>

int main()
{
	int currVal = 0, val = 0;

	// 接收输入流的第一个数
	if (std::cin >> currVal) {
		int cnt = 1;
		// 截流
		while (std::cin >> val) {
			if (val == currVal)
				++cnt;
			else {
				std::cout << currVal << " occurs "
					<< cnt << " times " << std::endl;
				// 新接收的数位当前数,计数为1
				currVal = val;
				cnt = 1;
			}
		}
		std::cout << currVal << " occurs "
			<< cnt << " times " << std::endl;
	}
	return 0;
}

std::cout中的"::"叫做作用域运算符

如题,用来指出你在用哪个命名空间的cout。

怎样用键盘输入一个文件结束符(EoF, End of File)

Windows

Ctrl+Z,然后回车

UNIX

Ctrl+D

怎么理解“类”(Class)

类定义了行为。
你对类的实例(对象, Object)能够执行哪些操作,分别会返回怎样的结果,都是由类的作者定义的。
我们想当然地认为表达式 "1 + 1" 返回 "2",是因为C++内部已经定义和实现了整型的“+”操作。

C++在哪里定义类

C++在头文件(Header files)中定义类,标准库头文件通常没有后缀(比如iostream),包含这些来自标准库的头文件时,应当用尖括号(< >)包裹头文件名,其余的头文件应当用双引号(" ")包裹。

你不应该嵌套多行注释!

在“//”打头的单行注释中,你可以为所欲为,随意嵌套其他注释符号。

但是,以界定符“/”和“/”包裹的多行注释块中,不可以再嵌套多行注释。
不仅如此,还推荐将多行注释写成这样的形式:

/*
 *
 * // 没错,我嵌套了,但是因为我是个单行注释所以无所谓
 *    每行都应当以一个 * 打头
 *    这样显得你比较专业
 */

i++ 和 ++i 有什么区别

i++;
++i;

这样就没有区别,用哪个看你心情;

a = i++;
b = ++i;

这就显然有区别。

在最后输出的 "std::endl" 有什么作用

std::endl 是一个操作符,同时起到结束当前行(就是指下一次输出将换行)和刷新缓冲区(Buffer)的作用,这能使程序的所有输出都写进输出流中。
由于程序崩溃可能导致一部分输出还卡在缓冲区中,如果我常用std::cout来调试程序,那么就应当始终保持对缓冲区的刷新。

形参和实参的英文

形式参数:Parameters (通常简称 params)
实际参数:Arguments(通常简称 args)

标签:std,头文件,cout,++,C++,第一章,注释,Primer
From: https://www.cnblogs.com/cyanzll/p/17694775.html

相关文章

  • C++重载输入和输出运算符
    在C++中,标准库本身已经对左移运算符<<和右移运算符>>分别进行了重载,使其能够用于不同数据的输入输出,但是输入输出的对象只能是C++内置的数据类型(例如bool、int、double等)和标准库所包含的类类型(例如string、complex、ofstream、ifstream等)。如果我们自己定义了一种新的数据类......
  • C++ 优先队列 priority_queue
    既然是队列那么先要包含头文件#include<queue>,他和queue不同的就在于我们可以自定义其中数据的优先级,让优先级高的排在队列前面,优先出队优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的和队列基本操作相同:top访问队头......
  • C笔记--c++编译过程
    c++编译过程 参考资料:尚硅谷bilibili视频2023版......
  • MySQL篇:第一章_软件安装和基本操作
    本篇安装软件NavicatePremium16破解版和phpstudy_prophpstudy_pro安装教程phpstudy官网:https://www.xp.cn/download.html下载等待下载完成后,双击可执行文件开始安装,选择自定义安装;等待安装完成即可拥有MySQL环境NavicatePremium16破解版安装教程官网地址:https://ww......
  • C++ 围炉札记
    文章目录内存检测ProtoBufCMake、vscode、clion、Qt右值1、临时变量右值引用2、右值引用本质函数返回std::functionPOD(PlainOldData)thread_localnew/delete1、定位new运算符可变参数模板typename和class1、C++模板类头文件和实现文件分离的方法2、函数显示实例化3、类显示实例......
  • VC++ 知识小结(续)
    1)当文档被修改时,如何在标题上加上标志'*'?重载CDocument类的虚函数virtualSetModifiedFlag:voidCTest2Doc::SetModifiedFlag(BOOLbModified){CStringstrTitle=GetTitle();CStringstrDirtyFlag="*";//notespacebeforethe'*'......
  • 七、PCL&C++相关小知识
    1、智能指针初始化(pcl库)智能指针在用的时候一定要初始化①在函数里面进行初始化pcl::PointCloud<pcl::PointXYZ>::Ptrcloud_source(newpcl::PointCloud<pcl::PointXYZ>)这里的Ptr就是智能指针,所以只看到过cloud的创建部分,而通常没有cloud的delete部分。②在类里面初始化类内部初......
  • C++ STL之map、multimap
    map和multimap是C++STL(StandardTemplateLibrary)中的关联容器,它们提供键值对的存储和访问。map是一个有序关联容器,它存储一组键值对,其中每个键都是唯一的。map中的键值对按照键的升序排序。用户可以通过键来访问、修改和删除对应的值。map的实现通常使用平衡二叉搜索树(如红黑树......
  • C++的String与UF8互转
    UTF8_To_String#include<Stringapiset.h>#include<iostream>std::stringUTF8_To_String(conststd::string&str){intnwLen=MultiByteToWideChar(CP_UTF8,0,str.c_str(),-1,NULL,0);wchar_t*pwBuf=newwchar_t[nwLen+1];//一定要加......
  • c++程序设计语言
    把那些重要的东西适度地记录索引,但是一些不太重要的细节就在书上标记就行。[ch7]# void*指针的使用(149)/nullptr# 原始字符串;不同语言的大字符集(153)# 多维数组至少需要知道哪些边界大小值(160)#......