C++语法汇总

这篇博客探讨了C++编程中的效率提升技巧,包括使用万能头文件、禁用流同步、设置cin/cout优化,以及内存管理。讲解了如何利用register关键字存放变量以加速,以及动态内存分配的两种方式。还提到了在DevC++中使用unordered_map的方法,并展示了如何精确控制浮点数输出的小数位数。
#include<bits/stdc++.h>//万能头文件 
ios::sync_with_stdio(false);//加速流 
cin.tie(0);//cin加速 
cout.tie(0);
register int a,b;//把变量存在寄存器里,加速
cin//读入的话会将空格,换行作为分割符,不会读入空格,读进去的只有分割成一小块的值
getline(cin,a);//会读入换行、空格等等,以特殊字符结束,所以在前面要加getchar(),避免换行被读入
O2优化
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
int *p;
p = new int;   //返回类型为int *类型,分配的大小为sizeof(int)
p = new int[100];    //返回类型为int *类型,分配的大小为sizeof(int) * 100

p = (int *)malloc(sizeof(int));
//devc++中unordered_map使用方法:
头文件:#include<tr1/unordered_map> s;
using namespace std::tr1
//严格控制小数位数
#include<iomanip>
cout<<book[i].num<<" "<<setiosflags(ios::fixed|ios::showpoint)<<setprecision(1)<<book[i].sum<<endl;

### C++语法总结 #### 1. 基础语法 C++ 的源文件扩展名为 `.cpp`,程序的入口是 `main()` 函数[^1]。 以下是简单的 Hello World 示例代码: ```cpp #include <iostream> using namespace std; int main() { cout << "hello world !!!" << endl; return 0; } ``` 在该示例中,`cout` 使用左移运算符 `<<` 进行输出操作,而 `endl` 表示换行并刷新缓冲区。 #### 2. 输入与输出 C++ 中常用的输入输出方式为 `cin` 和 `cout`,分别对应标准输入流和标准输出流。 `cin` 使用右移运算符 `>>` 来读取数据[^1]。 #### 3. 访问说明符 C++ 提供了三种主要的访问说明符来增强类的封装性: - **public**:公有成员可以在整个程序范围内被访问,通常用于定义类的接口。 - **private**:私有成员仅限于类内部及其友元函数访问,主要用于隐藏实现细节。 - **protected**:受保护成员类似于 private,但在派生类中也可访问[^4]。 #### 4. 引用机制 C++ 支持引用的概念,分为两种类型: - **左值引用**:绑定到已命名的对象,允许修改原始变量的内容。 - **右值引用**:引入自 C++11,专门用于临时对象或表达式的优化处理[^3]。 以下是一个关于左值引用和右值引用的例子: ```cpp void Fun(int& x) { cout << "左值引用" << endl; } void Fun(const int& x) { cout << "const 左值引用" << endl; } void Fun(int&& x) { cout << "右值引用" << endl; } void Fun(const int&& x) { cout << "const 右值引用" << endl; } int main() { int a = 10; const int b = 20; Fun(a); // 调用了左值引用版本 Fun(b); // 调用了 const 左值引用版本 Fun(100); // 调用了右值引用版本 return 0; } ``` #### 5. 函数重载与模板 C++ 支持通过参数列表的不同形式实现函数重载。此外,在 C++11 中还引入了万能引用和完美转发技术,使得函数能够灵活地接受不同类型的实参[^2]。 下面展示了如何利用函数模板实现完美的类型匹配: ```cpp template<class T> void Perfect(T&& x) { Fun(std::forward<T>(x)); } int main() { int x = 1; Perfect(x); // 调用左值引用版本 Perfect(move(x)); // 调用右值引用版本 return 0; } ``` #### 6. 类与继承 C++ 是一种支持面向对象编程的语言,提供了丰富的特性如类、继承、多态等。通过基类指针指向派生类对象的方式可以实现运行时多态行为。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值