如何将向量名视为数组名? 首先,我对C++是新的,所以问题可能是愚蠢的!! 其次,我已经看到了与此相关的答案,并且可以得出结论,向量的名称可以被视为数组 vector <int> myVector(7,10); // creates a vector of size 7 and initializes with 10 向量myVector(7,10);//创建大小为7的向量,并用10初始化

如何将向量名视为数组名? 首先,我对C++是新的,所以问题可能是愚蠢的!! 其次,我已经看到了与此相关的答案,并且可以得出结论,向量的名称可以被视为数组 vector <int> myVector(7,10); // creates a vector of size 7 and initializes with 10 向量myVector(7,10);//创建大小为7的向量,并用10初始化,c++,stdvector,C++,Stdvector,我们可以使用名称myVector作为数组,并像myVector[0]、myVector[1]那样编写 但由于vector是一个类,myVector是它的对象,因此该对象内部应该有一个存储区域,可以像myVector一样作为数组处理。someArray[0],myVector。someArray[1]不是对象名称本身,这是如何实现的?非常简单,重载运算符: 当您在类中定义这些类型的方法时,您可以使用这些特殊运算符;那些已经可以与标准描述的基本数据类型一起使用的数据类型 在向量的情况下,你有 ..

我们可以使用名称myVector作为数组,并像myVector[0]、myVector[1]那样编写


但由于vector是一个类,myVector是它的对象,因此该对象内部应该有一个存储区域,可以像myVector一样作为数组处理。someArray[0],myVector。someArray[1]不是对象名称本身,这是如何实现的?

非常简单,重载运算符:

当您在类中定义这些类型的方法时,您可以使用这些特殊运算符;那些已经可以与标准描述的基本数据类型一起使用的数据类型

在向量的情况下,你有

...

const Element& operator[](const unsigned int index)
{
     return internalArray[index];
}

...
在其类声明中

std::vector
类中可以找到类似的东西,因此如果您愿意,甚至可以构建自己的vector类

为了澄清,如果类定义了
[]-运算符
,则可以对其对象执行如下操作:

vec[4];
这相当于:

vec.operator[](4);
这也意味着可以选择重载运算符的参数。您甚至可以将字符串传递给
[]
运算符

例如,
std::map
可以很好地做到这一点:


好的,先忘掉Java。在C++中,重载运算符实际上是函数的语法别名。[]就是这样一个运算符。您是否在考虑
myVector.data()
data
方法获取指向向量内部存储区域的指针。挑剔:
std::vector
不是类。这是一个类模板<代码> STD::vector 是一个类。NITPoice:在C++中,基本上所有类型都是一个对象,包括“代码> int <代码>、数组和指针。唯一不需要的是引用和函数。您还提供了一个
const元素和运算符[]
。@nada:虽然不是必需的,但在这种情况下最好对参数也这样做,您是对的。非常感谢。