IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【生也有涯,而知也无涯】C++入门初探 -> 正文阅读

[C++知识库]【生也有涯,而知也无涯】C++入门初探

经历了在校期间一次比赛的打击,让我意识到自己的【编程功底】确实有了一些方法上的严重错误?!

错误????????????的方面:

仅仅专注于量、笔记的单纯记录而忘了深刻体会每一道OJ题的深层含义【包括:该题考察的方向、自己思考的逻辑、如何代码实现?

经常回顾是个好办法,但是更高效的办法是去通过刷题来将知识联系起来!

题目不在量,而在于【悟】

夜深人静,写博客确实很努力,但是更重要的不是单纯地记录,而是应用。有些内容无关紧要,但是又不想丢掉就记在记事本上,而不是去通篇大论去写博客单纯记录某个陌生点博客是用来记录难点的!!

对于不同的阶段学习的不同的知识,应用的方法都是不同的!

  1. 对于C的学习,写博客是重要但是更重要的是通过刷题来回顾,提高满足感和应用性,不让知识独立起来,而是真正用起来!!
  2. 对于数据结构的学习,相比较写博客而言,【悟】才是最重要的(画递归图、指针变化图...),然后应用刷题!!
  3. 而对于C++的学习,写博客(配合画思维导图是重中之重!!因为他有极其复杂的语法内容,需要经常温习而达到熟练!【在博客记录上,专门记录重难点、易混点,其余内容一笔带过,详细可以看课件!!

建议不要把「精通 C++ 」作为一个一年目标 应该 要把学习语言 作为一个持续的过 ,同时要把语言运用在具体的应用场合中。

刷题网站:

1、leetcode

leetcode中文刷题网站

2、牛客网

牛客网专项训练

C++不仅仅是一门语言,更是一种生活哲学,在以后的工作之余还需要继续挖掘……

本节目标

  • C++关键字
  • namespace解决命名冲突问题? --? 命名空间
  • C++输入、输出
  • 缺省参数
  • 函数重载
  • 引用
  • 内联函数
  • auto关键字(C++11)
  • 基于范围的for循环(C++11)
  • 指针空值 -- nullptr(C++11)

2、namespace解决命名冲突问题(命名空间)

(1)命名空间

在全局作用域中(变量、函数、类),我们可能会面临命名冲突。使用命名空间的目的是对标识符本地化,以避免命名冲突或名字污染。

namespace关键字就是解决此类问题的!

(2)命名空间的定义

定义命名空间,需要使用到 namespace 关键字 ,后面跟 命名空间的名字 ,然 后接一对 {? ?} 即可, {? } 中即为命名 空间的成员。

注意:

允许嵌套定义

相同名称的命名空间编译器识别后会合并在一起

当然,namespace里面不仅仅可以定义变量,也可以是函数、结构体自己想定义的各种全局的内容,只不过是namespace进行了一层” 隔离 “罢了!

在main函数中调用命名空间的变量、函数、结构体

(3)命名空间的使用

命名空间的使用又三种方式:

(1)加命名空间名称及作用域限定符

//使用命名空间
//方式1:加命名空间名称及作用域限定符
namespace qbj
{
	int rand = 10;

	int Add(int left, int right)
	{
		return left + right;
	}

	struct Node
	{
		struct Node* next;
		int val;
	};
}

int main()
{
	printf("%d", qbj::rand);
	qbj::Add(2, 3);
	struct qbj::Node next;
	return 0;
}

?C语言中也可以用

普通的使用:

注意:

namespace仅仅是对全局变量做一层“ 隔离 ”,来防止命名冲突问题。它仍然是全局变量,放在静态区的!!

嵌套的命名空间的使用

?(2)使用using namespace将指定名称的命名空间全部展开(不推荐!这样? 隔离就失效了!)

(3)使用using 指定命名空间某个成员展开(?强推!!)

//使用命名空间
//方式3:使用using 将指定命名空间某个成员展开

namespace qbj
{
	int rand = 10;

	int Add(int left, int right)
	{
		return left + right;
	}

	struct Node
	{
		struct Node* next;
		int val;
	};
}

using qbj::Node;
int main()
{

	qbj::rand = 2;
	qbj::Add(2, 3);
	struct Node head;
	return 0;
}

3、C++输入、输出

#include<iostream>
using namespace std;
int main()
{
   cout<<"Hello world!!!"<<endl;
   return 0; 
}

//解释:
#include<iostream>//输入输出流
using namespace std;//C++库的实现在一个叫std的命名空间中,将std命名空间全部展开
int main()
{
   cout<<"Hello world!!!"<<endl;//输出Hello world到控制台,并换行
   return 0; 
}

说明:

  1. 使用cout标准输出(控制台)cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空间。
注意:
早期标准库将所有功能在全局域中实现,声明在 .h 后缀的头文件中,使用时只需包含对应头文件 即可,后来将其实现在std 命名空间下,为了和 C 头文件区分,也为了正确使用命名空间,规定 C++ 头文件不带.h ;旧编译器 (vc 6.0) 中还支持 <iostream.h> 格式,后续编译器已不支持,因此 推荐 使用 <iostream>? +? std 的方式。
? ? 2 .? 使用 C++ 输入输出更方便,不需增加数据格式控制,比如:整形 --%d ,字符 --%c

?

你觉得展开名字为std的命名空间的全部不好?? 那么也可以这样:(展开常用的!项目中可能会用到。)

【一般在做oj题不会这样用,即:第一种? ? ?using namespace std;即可】

?详细说明:

?

?

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 01:47:11  更:2022-01-14 01:48:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:05:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码