C++基础学习03
C++基础学习03
2025-01-17 15:59:09 星期五
关于数组
数组有几个特点
-
固定大小
-
相同的数据类型
-
连续存储
这点就是说数组在内存中是连续存储的
-
下标访问
这点就是我们可以通过
[num]的方式来对数组进行访问
一般来说,我们使用dataType arrayName[arraySize]的方式来创建一个数组
vector容器
vector和iostream一样,都是C++标准库的一个类,所以需要用#include<vector>引入
vector是一个容器类,表示一个对象的集合,可以动态地存储一组元素
vector和array的区别在于
当不知道具体有多少个元素时,使用vector;而当知道有多少个元素时,使用array
关于vector的常见用法,
假设我们创建vector<int> myVector = {1, 2, 3, 4, 5}
-
在末尾添加元素6
myVector.push_back(6); -
删除元素a
myVector.pop_back(); -
清空
myVector.clear(); -
计算大小
myVector.size(); -
判断是否有元素存在
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;
}
}
浙公网安备 33010602011771号