• c++复合数据类型


    复合数据类型

    数组

    数据类型 数组名[元素个数]

    #include
    
    using namespace std;
    
    int main()
    {
        const int n = 3;
        // 元素个数必须为常量
        double ls[n];
    
        //初始化
        int ls1[2] = {1, 2};
        float ls2[] = {1.2, 3.1, 5.2, 6.6};
        short ls3[5] = {3, 6, 9}; // 其他值为0
        // 不能超,不能用数组给数组赋值
    
    	
    	//数组长度
    	int a[] = {1, 2, 3, 4, 5, 6, 7, 8};
    	cout << a[1] << endl;
    	cout << "数组所占空间" << sizeof(a) << endl;
    	cout << "数组每个元素长度" << sizeof(a[0]) << endl;
    	int aSize = sizeof(a) / sizeof(a[0]);
    	cout << "数组的长度" << aSize << endl;
    	//遍历
    	for(int i = 0; i < aSize; i++)
    	{
    		cout << "a[" << i << "]" << a[i] << endl;
    	}
    	//范围遍历
    	for(int num: a)
    	{
    		cout << num << endl;
    	}
    	cin.get()
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    多维数组

    #include
    
    using namespace std;
    
    int main()
    {
    	int arr[3][4]; //二维数组
    	//初始化
    	//数据类型 数据名[行数][列数] = {数据1, 数据2, 数据3, }; 少了的就被赋值为0,行可以省略,列不能省略
    	//数据类型 数据名[行数][列数] = {
    		{1, 2, 3},
    		{4, 5, 6},
    		{7, 8, 9}
    	};
    	
    
    	int arr2[3][4][5]; //三维数组
    
    	int ia[3][4] = {1, 2, 3, 4, 5, 6, 7};
    	//访问
    	cout << ia[1][0] << endl;
    
    	//遍历 必须要知道几行和几列 
    	//计算行列,没有的数据默认是0
    	cout << sizeof(ia) << endl; // 总大小
    	cout << sizeof(ia[0]) << endl; // 每行大小
    	cout << sizeof(ia[0][0]) << endl; //每个元素大小
    	int rowCnt = sizeof(ia) / sizeof(ia[0]);
    	int colCnt = sizeof(ia[0]) / sizeof(ia[0][0]);
    	
    	for(int i = 0; i < rowCnt; i++)
    	{
    		for(int j = 0; j < colCnt; j++)
    		{
    			cout << ia[i][j] << endl;
    		}
    	}
    		
    	for(auto& row: ia)//因为ia内是数组,不好推断,auto是自动推断的意思
    	{
    		for(auto num: row)
    		{
    			cout << num << "\t";
    		}				
    		cout << endl;
    	}
    	cin.get()
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    选择排序/冒泡排序

    遍历查找最小值移到第一位,再次遍历查找最小值移到第二位。。。

    
    #include
    
    using namespace std;
    
    int main()
    {
        int arr[] = {1, 7, 4, 3, 6, 9, 5};
        int aSize = sizeof(arr) / sizeof(arr[0]);
    
        //选择排序
        for(int i = 0; i < aSize; i++)
        {
            for(int j = i+1; j < aSize; j++)
            {
                if(arr[j] < arr[i])
                {
                    int temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }
        }
        for(int i = 0; i < aSize; i++)
        {
            cout << arr[i] << "\t";
        }
        cout << endl;
    
        //冒泡排序
        for(int k = 0; k < aSize; k++)
        {
            for(int i = 0; i < aSize - 1 - k; i++)
            {
                int j = i + 1;
                if(arr[i] > arr[j])
                {
                    int temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp; 
                }
            }
        }
        for(int i = 0; i < aSize; i++)
        {
            cout << arr[i] << "\t";
        }
        cout << endl;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
  • 相关阅读:
    python经典百题之字符串连接
    【PaLM2】PaLM2 大语言模型与 Bard 使用体验
    安装pangolin问题解决|找不到makefile
    十大靠谱“计算机视觉数据集”榜单
    Java—类加载机制
    腾讯云数据库公有云市场稳居TOP 2!
    mysql8.0.28下载和安装详细教程,适配win11
    第十三届蓝桥杯C++B组省赛 I 题——李白打酒加强版 (AC)
    linux 查看版本信息详细版
    redis 06 集群
  • 原文地址:https://blog.csdn.net/weixin_46483785/article/details/134097156