我不知道下面的代码是否合法。通过原始指针访问整数向量的元素
基本上我有一个std::vector<int>
和我有一个传统的功能,处理int
s的数组。由于std::vector
的元素总是连续的,因此代码应该始终有效(它实际上在我的实现中起作用),但对我来说它仍然有点破绽。
#include <vector>
#include <iostream>
void LecagyFunction(int *data, int length)
{
for (int i = 0; i < length; i++)
std::cout << data[i] << std::endl;
}
int main()
{
std::vector<int> vector;
vector.push_back(5);
vector.push_back(4);
vector.push_back(3);
LecagyFunction(&vector[0], vector.size());
}
如预期的输出是:
5
4
3
C++ 11的方式不仅仅是“简化”:与旧的方式不同,它甚至适用于空向量。 – Eugene
@Eugene,同意。 – SergeyA
@TartanLlama,原来的问题是关于整数,但我会澄清。谢谢。 – SergeyA