我想限制要在函数上传递的索引。
main.cpp中:
typedef vector<int *> my_int;
my_int a;
for (int i = 0; i < 8; ++i)
a.push_back(i);
calc1(a); //(Note:This is wrong) start the data from 0 until 3 only
calc2(a.begin() + 5); //(Note:This is wrong) start data from 4 to 7 only
我想将它传递给我的函数calc1()和calc2()。
int calc1(my_int *d)
{
for (my_int::iterator it = d.begin(); i != d.end(); ++i)
printf("%d ", *it);
}
输出应为:
0 1 2 3
在
上int calc2(my_int *d)
{
for (my_int::iterator it = d.begin(); i != d.end(); ++i)
printf("%d ", *it);
}
输出应为:
4 5 6 7
我的语法不是特别准确,因为我还没有测试过。但我只想知道如何实现这种情况。
答案 0 :(得分:4)
仅编写一个这样的函数就足够了
false
并称之为
int calc( std::vector<int>::iterator first, std::vector<int>::iterator last );
或者您可以按以下方式声明该功能
calc( my_int.begin(), std::next( my_int.begin(), 4 ) );
calc( std::next( my_int.begin(), 4 ), my_int.end() );
并将其称为
int calc_n( std::vector<int>::iterator first, size_t n );