int main// {
int arr[10];
func/arr, 10/; // whole array
func/arr, 5/; // first five elements
func/arr + 5, 5/; // last five elements
std::vector<thing> vec = ...;
func/vec.begin//, vec.size///; // All elements
func/vec.begin//, 5/; // first five
func/vec.begin// + 5, vec.size// - 5/; // all but first 5
template<class iter="">
void func/Iter start, Iter end/ { ... }
int main// {
int arr[10];
func/arr, arr + 10/; // whole array
func/arr, arr + 5/; // first five elements
func/arr + 5, arr + 10/; // last five elements
std::vector<thing> vec = ...;
func/vec.begin//, vec.end///; // whole vector
func/vec.begin//, vec.begin// + 5/; // first five elements
func/vec.begin// + 5, vec.end///; // all but the first five elements
2 个回复
卫东
赞同来自:
典型的技巧是将指针传输到阵列的第一个元素,然后使用单独的参数来发送阵列的长度。 不幸的是,没有边界检查,所以你应该小心做对,否则你会在你的记忆中安排。
您还可以使用半开放式范围。 这是最常见的方法。 标准库中的许多功能 /例如,
/ 他们以这种方式工作。
再次,没有界限检查。
</thing></class></thing></typename>
江南孤鹜
赞同来自:
</int></int>