class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int n = nums.size();
for (int i = 0; i < n; ++i) {
for (int j = i + 1; j < n; ++j) {
if (nums[i] + nums[j] == target) {
return {i, j};
}
}
}
return {};
}
};
解析:
class Solution
class
表示声明一个类,单词Solution
是“解决方案”的意思。那么class Soulution
就是声明出一个解决方案的类,类中用来存放关于解决这一问题所需要的各种函数/方法、变量。
为什么要这样做呢,简单说来就是:
- 抽象层面上更符合逻辑——针对某一问题的解决方案,方案里可以有若干成员变量和成员函数
- 生成若干实例互不干扰——因为每个类的实例内部的(非静态)成员变量是独立的
- 更“干净”,即不会污染到程序其他地方的代码——类中的成员不会与类外其他标识符冲突
一个类(生成的对象)可以理解成函数+函数运行需要的环境。如果函数不需要额外的运行环境,也可以把函数设置成静态的。
public
C++中的public分为两种情况:
1、public修饰的类成员,表示类成员被访问控制的权限。
public修饰:公有成员,基类、子类、友元、外部都可以访问
private修饰:私有成员,基类、友元可以访问,子类、外部不可以访问
protected修饰:保护成员,基类、子类、友元可以访问,外部不可以访问
这样很好得体现了C++面向对象思想中的封装。
2、public修饰子类继承基类的方式,表示公有继承。
以公有方式继承,通过子类访问基类的成员,其维持基类中的公有,私有还是保护。
vector<int> twoSum(vector<int>& nums, int target)
向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。
在 c++ 中,vector 是一个十分有用的容器。它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
C++ 中数组很坑,有没有类似 Python 中 list 的数据类型呢?类似的就是 vector!vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和 string 对象一样,标准库将负责管理与存储元素相关的内存。我们把 vector 称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。