int d[4][2] = {{0,1},{1,0},{0,-1},{-1,0}};//方向数组 规定行走方向顺序 右下左上循环
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
int n = matrix.size();
int m = matrix[0].size();//规定范围
vector<vector<int>> vis(n,vector<int>(m,0));
vector<int> ans(m*n);//严格规定答案数组大小,避免push_back()重新分配内存的开销
int curx = 0,cury = -1;//当前位置
int x=0;//方向数组基准数
for(int i=0;i<m*n;)
{
curx += d[x%4][0];
cury += d[x%4][1];//新位置
if(cury>=m||cury<0||curx>=n||curx<0||vis[curx][cury])
{
curx-=d[x%4][0];//如果越界或者走到了走过的位置就返回上一个位置并且转向
cury-=d[x%4][1];
x++;
continue;
}
ans[i] = matrix[curx][cury];//更新答案
vis[curx][cury] = 1;//走过了就标记
i++;//如果合理就计数+1;
}
return ans;
}
};
什么是封装性?C++中如何实现封装?
封装性是面向对象编程(OOP)中的一个基本概念,它指的是将数据(属性)和操作数据的方法(函数)捆绑在一起,并限制外部对数据的直接访问,从而实现数据隐藏和访问控制。通过封装,可以确保对象的内部状态不会被随意修改,从而提高了代码的安全性和可维护性。
封装的核心思想有两个:
- 数据隐藏:将对象的状态(数据)封装起来,外部只能通过公开的接口(方法)来访问和修改数据。
- 暴露行为:通过公开的接口方法控制外界如何与对象交互,而不暴露对象的内部实现细节。
C++中如何实现封装?
在C++中,封装通过使用 类(Class) 来实现。类可以包含私有成员(属性和方法)以及公有成员(接口方法)。
-
类的定义:在类中使用访问控制关键字
public,private, 和protected来控制成员的可访问性。public:公有成员,外部可以访问。private:私有成员,外部无法直接访问,通常用于存储对象的内部状态。protected:受保护成员,子类可以访问,但外部不能直接访问。
实现封装的步骤:
- 将数据成员设置为
private,外部无法直接修改。 - 提供
public成员函数作为接口来访问和修改这些私有数据成员。
封装性的好处是什么?
- 保护数据
- 提高代码可维护性
- 降低系统复杂度(不用直接操作未知意义的数据和与其配合的成员)
- 提高代码的安全性和健壮性
- 支持代码的重用和拓展(继承基类,重写函数)
1661

被折叠的 条评论
为什么被折叠?



