我看到一些用C++编写的代码,如下所示:
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main() {
int iarr[] = {30, 12, 55, 31, 98, 11, 41, 80, 66, 21};
vector<int> ivector(iarr, iarr + 10);
}
在上面的代码中,我将
iarr
和 iarr+10
传递给 ivector(iarr, iarr + 10)
来创建一个新的向量,这是构造 vector
的正确方式吗?我查看了 STL 文档,但没有提到这一点,这样做是否被允许?另外,数组
iarr
包含 10 个元素,我应该使用 ivector(iarr, iarr+9)
吗?
ivector(&iarr[0], &iarr[0] + 10);
。 - aligrayvector<int> ivector(iarr, iarr + (sizeof(iarr)/sizeof(iarr[0])));
- Martin YorkC
风格的代码。我也认为这样看起来语义更清晰。 :) - aligray