数据类型

基本类型

  • 整型:用于表示整数,如 intshortlong 等。

  • 浮点型:用于表示带小数部分的数值,如 floatdouble 等。

  • 字符型:用于表示单个字符,如 char

  • 布尔型:用于表示逻辑值,只能取 truefalse

    整型​:

  • int:通常占用 4 个字节(32 位),范围为 -2147483648 到 2147483647。

  • short:通常占用 2 个字节(16 位),范围为 -32768 到 32767。

  • long:通常占用 4 个字节(32 位),范围与 int 类似,但取决于平台,有时会更大。

  • long long:通常占用 8 个字节(64 位),范围为 -9223372036854775808 到 9223372036854775807。

浮点型​:

  • float:通常占用 4 个字节(32 位),范围为约 ±3.4e-38 到 ±3.4e38,精度为约 6-7 位小数。
  • double:通常占用 8 个字节(64 位),范围为约 ±1.7e-308 到 ±1.7e308,精度为约 15-16 位小数。
  • long double:通常占用 12 或 16 个字节,范围和精度比 double 更大,具体取决于编译器和平台。

复合类型

C++中的复合数据类型是由基本类型或其他复合数据类型组成的类型,包括数组,指针,引用和结构体。每种复合数据类型在内存中的存储方式和大小都有所不同,以下是C++中常见的复合数据类型及其特点:

数组​:

  • 数组是由相同类型的元素组成的集合。
  • 数据的大小在创建时就确定,并且在整个生命周期中保持不变
  • 访问数组元素时,可以使用下标(索引)来访问特定位置的元素。

指针​:

  • 指针是存储其他变量内存地址的变量。
  • 指针可以指向任何数据类型的变量,甚至可以指向函数。
  • 通过指针,可以直接访问或修改指向变量的值。

引用​:

  • 引用为变量取一个别名,用于简化代码和提高效率。
  • 引用在创建时,必须初始化,并且一旦引用被初始化后,就不能再引用其他变量。

结构体​:

  • 结构体是用户自定义的数据类型,用于将不同类型的数据组合在一起形成一个新的数据类型。
  • 结构体的成员可以包括基本数据类型,复合数据类型甚至其他结构体。

有n个数,经行排序,之后输出原来位置

例题

结构体

#include<bits/stdc++.h>

using namespace std;

struct st
{
	int idx;
	int v;
};
 
st a[114514];

bool cmp(struct st a, struct st b)
{
	return a.v > b.v;
}

int main()
{
	int n;
	cin >> n;
	
	for(int  i = 1; i<= n; i ++)
	{
		a[i].idx = i;
		cin >> a[i].v;
	} 
	
	sort(a + 1,a + n + 1,cmp);
	
	for(int i = 1; i <= n; i ++)
	{
		cout << a[i].idx << endl;
	}
	return 0;
}