我不知道下面的代碼是否合法。通過原始指針訪問整數向量的元素
基本上我有一個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