C++基础学习03

C++基础学习03

2025-01-17 15:59:09 星期五

关于数组

数组有几个特点

  1. 固定大小

  2. 相同的数据类型

  3. 连续存储

    这点就是说数组在内存中是连续存储的

  4. 下标访问

    这点就是我们可以通过[num]的方式来对数组进行访问


一般来说,我们使用dataType arrayName[arraySize]的方式来创建一个数组

vector容器

vector和iostream一样,都是C++标准库的一个类,所以需要用#include<vector>引入

vector是一个容器类,表示一个对象的集合,可以动态地存储一组元素

vector和array的区别在于

当不知道具体有多少个元素时,使用vector;而当知道有多少个元素时,使用array

关于vector的常见用法,

假设我们创建vector<int> myVector = {1, 2, 3, 4, 5}

  1. 在末尾添加元素6

    myVector.push_back(6);

  2. 删除元素a

    myVector.pop_back();

  3. 清空

    myVector.clear();

  4. 计算大小

    myVector.size();

  5. 判断是否有元素存在

    myVector.empty();

    如果长度为0,则返回True

使用循环嵌套来控制多维数组

这个是遇到了打印正方形边框的题,这个题的思路比较有启发性

题目描述

如下图

思路

按照我的旧作法,一般是将每一行的情况做一下if-else判断,也就是,第一行单独写一段代码,中间n-2行的部分都一样,单独写一段代码,最后一行再单独写一段代码。这样写出来的代码就有点冗长

点击查看代码
#include<iostream>
using namespace std;
int main(){
    int n, i, j, k;
    cin >> n;
    // cout << n;
    for(i = 0; i < n; i++){
        if(i == 0){
            for(j = 0; j < n; j++){
                cout << "*";
            }
            cout << endl;
        }
        else if(i == n-1){
            for(j = 0; j < n; j++){
                cout << "*";
            }
        }
        else{
            cout << "*";
            k = n-2;
            // cout << k;
            while(k--){
                cout << " ";
                // cout << "1";
            }
            cout << "*" << endl;
        }
    }
    return 0;
}

看了卡哥的代码,这个是分成了“边界”“中间”两部分,

注:图片来自卡玛网

只需要用逻辑运算符对边界的情况进行讨论,然后二分类输出即可,所以代码很简洁。

点击查看代码
int main(){
    int n;
    cin >> n;
    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++){
            if(i == 0 || i == n-1 || j == 0 || j == n-1){
                cout << "*";
            }
            else cout << " ";
        }
        cout << endl;
    }
}
posted on 2025-01-18 17:20  bnbncch  阅读(15)  评论(0)    收藏  举报