C++语法知识汇总

目录

输入

输出

判断语句

if ... else if ... else 语句

switch() {} 语句

循环

for

while

do-while

运算符

数组

数组 

vector

变量

类型

整数类型(Integer Types)

浮点类型(Floating-Point Types)

字符类型(Character Types)

布尔类型(Boolean Type)

枚举类型(Enumeration Types)

指针类型(Pointer Types)

数组类型(Array Types)

结构体类型(Structure Types)

类类型(Class Types)

共用体类型(Union Types)

字符(串)

C++ 字符串

C 风格字符串

实例

C++ 中的 String 类

实例

函数

定义函数

 实例


输入

//输入
cin >> (变量名);(可多个)
scanf((占位符) , (变量名 / 其它));

输出

//输出
cout << (输出内容) << (其它);
printf(占位符 , 输出内容);

Tips:(其它)可以是endl、等

判断语句

if ... else if ... else 语句

//if...else if...else
if (判断语句)
{
    //TODO
}
else if(判断语句)
{
    //TODO
}
else
{
    //TODO
}

switch() {} 语句

//switch() {} 
switch(变量名)
{
    case 1:
        //TODO
        break;
    case 2:
        //TODO
        break;
    default:
        //TODO
        break;
    }
}

循环

for

//for
for(int i = x ; i <= x ; i++)
{
    //TODO
}

while

//while
while(x)
{
    //TODO
}

do-while

do
{
    //TODO
}while(x);

运算符

除了日常的四个运算符:

+(号)(实际上)+加法
-(号)(实际上)-减法
*(号)(实际上)×乘法
/(号)(实际上)÷除法

还有一个运算符:

%(号)(实际上)mod求余

Tips:这可不是百分比,这是求余运算符!

数组

Tips:这里只展示数组和vector 

数组 

int x[100] //定义
cout << x[1] << endl;//取值并打印
x[1] = 12;//将x的第1个元素赋值为12

vector

vector<int> a;//定义
cout << a[1] << endl;//取值并输出
a.push_back(1);//加入1至末尾
//...//

变量

顾名思义,变量,可变的量。

类型

共有以下几种:

类型描述
bool布尔类型,存储值 true 或 false,占用 1 个字节。
char字符类型,用于存储 ASCII 字符,通常占用 1 个字节。
int整数类型,通常用于存储普通整数,通常占用 4 个字节。
float

单精度浮点值,用于存储单精度浮点数。单精度是这样的格式,1 位符号,8 位指数,23 位小数,通常占用4个字节。

double

双精度浮点值,用于存储双精度浮点数。双精度是 1 位符号,11 位指数,52 位小数,通常占用 8 个字节。

void表示类型的缺失。
wchar_t宽字符类型,用于存储更大范围的字符,通常占用 2 个或 4 个字节。

C++ 也允许定义各种其他类型的变量,比如枚举、指针、数组、引用、数据结构、类等等。

  1. 整数类型(Integer Types):
    • int:用于表示整数,通常占用4个字节。
    • short:用于表示短整数,通常占用2个字节。
    • long:用于表示长整数,通常占用4个字节。
    • long long:用于表示更长的整数,通常占用8个字节。
  2. 浮点类型(Floating-Point Types):
    • float:用于表示单精度浮点数,通常占用4个字节。
    • double:用于表示双精度浮点数,通常占用8个字节。
    • long double:用于表示更高精度的浮点数,占用字节数可以根据实现而变化。
  3. 字符类型(Character Types):
    • char:用于表示字符,通常占用1个字节。
    • wchar_t:用于表示宽字符,通常占用2或4个字节。
    • char16_t:用于表示16位Unicode字符,占用2个字节。
    • char32_t:用于表示32位Unicode字符,占用4个字节。
  4. 布尔类型(Boolean Type):
    • bool:用于表示布尔值,只能取truefalse
  5. 枚举类型(Enumeration Types):
    • enum:用于定义一组命名的整数常量。
  6. 指针类型(Pointer Types):
    • type*:用于表示指向类型为type的对象的指针。
  7. 数组类型(Array Types):
    • type[]type[size]:用于表示具有相同类型的元素组成的数组。
  8. 结构体类型(Structure Types):
    • struct:用于定义包含多个不同类型成员的结构。
  9. 类类型(Class Types):
    • class:用于定义具有属性和方法的自定义类型。
  10. 共用体类型(Union Types):
    • union:用于定义一种特殊的数据类型,它可以在相同的内存位置存储不同的数据类型。

在 C++ 中,类型的长度(即占用的字节数)取决于编译器和计算机架构,然而,C++ 标准规定了不同整数类型的最小范围,而不是具体的字节数,这是为了确保代码在不同的系统上都能正确运行。

请注意,以上类型的范围只是 C++ 标准规定的最小要求,实际上,许多系统上这些类型可能占用更多的字节,例如,很多现代计算机上 int 通常占用 4 字节,而 long 可能占用 8 字节。

字符(串)

C++ 字符串

C++ 提供了以下两种类型的字符串表示形式:

  • C 风格字符串
  • C++ 引入的 string 类类型

C 风格字符串

C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。

其实,您不需要把 null 字符放在字符串常量的末尾。C++ 编译器会在初始化数组时,自动把 \0 放在字符串的末尾。

C++ 中有大量的函数用来操作以 null 结尾的字符串:

序号函数 & 目的
1strcpy(s1, s2);
复制字符串 s2 到字符串 s1。
2strcat(s1, s2);
连接字符串 s2 到字符串 s1 的末尾。连接字符串也可以用 + 号,例如:
string str1 = "runoob";
string str2 = "google";
string str = str1 + str2;
3strlen(s1);
返回字符串 s1 的长度。
4strcmp(s1, s2);
如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回值小于 0;如果 s1>s2 则返回值大于 0。
5strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
6strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

下面的实例使用了上述的一些函数:

实例

#include <iostream>
#include <cstring>
using namespace std;
int main () 
{ 
    char str1[13] = "AB"; 
    char str2[13] = "C"; 
    char str3[13]; int len ; // 复制 str1 到 str3 
    strcpy( str3, str1); 
    cout << "strcpy( str3, str1) : " << str3 << endl; // 连接 str1 和 str2 
    strcat( str1, str2); 
    cout << "strcat( str1, str2): " << str1 << endl; // 连接后,str1 的总长度 
    int len = strlen(str1); 
    cout << "strlen(str1) : " << len << endl; 
    return 0; 
}

当上面的代码被编译和执行时,它会产生下列结果:

strcpy( str3, str1) : AB
strcat( str1, str2): ABC
strlen(str1) : 3

C++ 风格字符串

C++ 标准库提供了 string 类类型,支持上述所有的操作,另外还增加了其他更多的功能。我们将学习 C++ 标准库中的这个类,现在让我们先来看看下面这个实例:

现在您可能还无法透彻地理解这个实例,因为到目前为止我们还没有讨论类和对象。所以现在您可以只是粗略地看下这个实例,等理解了面向对象的概念之后再回头来理解这个实例。

实例

#include <iostream>
#include <string> 
using namespace std; 
int main () 
{ 
    string str1 = "AB"; 
    string str2 = "C"; 
    string str3; int len ; // 复制 str1 到 str3
    str3 = str1; 
    cout << "str3 : " << str3 << endl; // 连接 str1 和 str2 
    str3 = str1 + str2; 
    cout << "str1 + str2 : " << str3 << endl; // 连接后,str3 的总长度 
    len = str3.size(); 
    cout << "str3.size() : " << len << endl; 
    return 0; 
}

当上面的代码被编译和执行时,它会产生下列结果:

str3 : AB
str1 + str2 : ABC
str3.size() :  3

函数

定义函数

C++ 中的函数定义的一般形式如下:

return_type function_name( parameter list ) 
{ 
    body of the function 
}

 实例

// 函数返回两个数中较大的那个数
 
int max(int num1, int num2) 
{
    int arr = num1 > num2 ? num1 : num2;
    return arr; 
}

感谢:OI Wiki - OI Wiki , 菜鸟教程 - 学的不仅是技术,更是梦想!

制作不易,点个赞吧!

ENVI软件在遥感影像处理中扮演着至关重要的角色,其中影像的几何纠正功能对于确保影像数据的精确性至关重要。几何纠正的过程涉及调整影像坐标,使其与实际地理坐标系统一致,这一步骤对于后续的分析和制图至关重要。 参考资源链接:[ENVI遥感影像处理全面指南:预处理、信息提取与三维可视化](https://wenku.youkuaiyun.com/doc/398pr5x5h3?spm=1055.2569.3001.10343) 具体步骤如下: 1. 打开ENVI软件,导入需要进行几何纠正的遥感影像。 2. 选择相应的工具,例如“Basic Tools”菜单下的“Geometric Correction”选项。 3. 根据影像数据类型和需要达到的精度,选择合适的纠正方法。ENVI提供了多种纠正算法,包括多项式模型、共线方程、地面控制点(GCP)校正等。 4. 如果使用GCP校正,需要在影像上选择若干地面控制点,并输入这些点的实际地理坐标,作为校正的基础。 5. 进行校正参数的计算,这个过程通常涉及到解算一个或多个多项式方程,以最小化影像中的点与真实地理坐标间的偏差。 6. 使用计算得到的参数进行影像的重新采样和配准,最终输出几何校正后的影像。 7. 校正结果需要评估,一般通过比较校正前后GCP的残差来验证校正的精度和效果。 适用场景: 几何纠正广泛应用于地形变化检测、土地利用调查、城市规划、环境监测等多个领域。在这些应用场景中,影像的几何准确性直接影响到分析结果的可靠性。 为了深入学习ENVI中遥感影像几何纠正的更多细节和高级应用,推荐参考《ENVI遥感影像处理全面指南:预处理、信息提取与三维可视化》一书。该指南不仅提供了理论知识,还详细介绍了操作步骤和实际应用案例,有助于读者全面掌握几何纠正的技巧和方法。 参考资源链接:[ENVI遥感影像处理全面指南:预处理、信息提取与三维可视化](https://wenku.youkuaiyun.com/doc/398pr5x5h3?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值