C++ 使用数组进行向量初始化

C++ 使用数组进行向量初始化,c++,arrays,vector,C++,Arrays,Vector,我们可以使用数组初始化向量。假设 int a[]={1,2,3} vector<int>x(a,a+3) 也不会给出错误,请执行与上述代码相同的操作。如果我们写一个[3],它应该在数组之外吗?有人能告诉我内在的机制吗 向量的范围构造函数如下所示: template <class InputIterator> vector (InputIterator first, InputIterator last, const a

我们可以使用数组初始化向量。假设

int a[]={1,2,3}
vector<int>x(a,a+3)

也不会给出错误,请执行与上述代码相同的操作。如果我们写一个[3],它应该在数组之外吗?有人能告诉我内在的机制吗

向量的范围构造函数如下所示:

template <class InputIterator>
         vector (InputIterator first, InputIterator last,
                 const allocator_type& alloc = allocator_type());

另外,
*(a+3)
相当于
a[3]

向量的范围构造函数如下所示:

template <class InputIterator>
         vector (InputIterator first, InputIterator last,
                 const allocator_type& alloc = allocator_type());

另外,
*(a+3)
相当于
a[3]

向量的范围构造函数如下所示:

template <class InputIterator>
         vector (InputIterator first, InputIterator last,
                 const allocator_type& alloc = allocator_type());

另外,
*(a+3)
相当于
a[3]

向量的范围构造函数如下所示:

template <class InputIterator>
         vector (InputIterator first, InputIterator last,
                 const allocator_type& alloc = allocator_type());

另外,
*(a+3)
相当于
a[3]

是,
a
a+3
是指针。普通的
a
是一个数组,它被隐式转换为一个指针


构造
&a[3]
在意义上与普通C数组的
a+3
相同。是,
a[3]
在数组之外,但如果不取消引用,则允许一个过去项指向它。

是,
a
a+3
是指针。普通的
a
是一个数组,它被隐式转换为一个指针


构造
&a[3]
在意义上与普通C数组的
a+3
相同。是,
a[3]
在数组之外,但如果不取消引用,则允许一个过去项指向它。

是,
a
a+3
是指针。普通的
a
是一个数组,它被隐式转换为一个指针


构造
&a[3]
在意义上与普通C数组的
a+3
相同。是,
a[3]
在数组之外,但如果不取消引用,则允许一个过去项指向它。

是,
a
a+3
是指针。普通的
a
是一个数组,它被隐式转换为一个指针

构造
&a[3]
在意义上与普通C数组的
a+3
相同。是的,
a[3]
在数组之外,但如果不取消引用,则允许指向一个过去。

int a[]={1,2,3}

向量(a,a+3)

a是一个数组,所以它总是指向它的基址。 a+3平均基址+(sizeof(int)*3)

假设基址是100 a=100; a+3=106

inta[]={1,2,3}

向量(a,a+3)

a是一个数组,所以它总是指向它的基址。 a+3平均基址+(sizeof(int)*3)

假设基址是100 a=100; a+3=106

inta[]={1,2,3}

向量(a,a+3)

a是一个数组,所以它总是指向它的基址。 a+3平均基址+(sizeof(int)*3)

假设基址是100 a=100; a+3=106

inta[]={1,2,3}

向量(a,a+3)

a是一个数组,所以它总是指向它的基址。 a+3平均基址+(sizeof(int)*3)

假设基址是100 a=100; a+3=106

vectrox(a,&a[3])

这里&a[3]相当于+3(a,&a[3])

这里&a[3]相当于+3(a,&a[3])

这里&a[3]相当于+3(a,&a[3])

这里&a[3]相当于+3的可能重复