我可以使用占位符作为C++中数组的索引吗?

我可以使用占位符作为C++中数组的索引吗?,c++,vector,placeholder,c++03,C++,Vector,Placeholder,C++03,我将显示代码块 void function(int n) {} int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} std::vector<int> v; for (int i=0; i<10; i++) v.push_back(i); std::for_each(v.begin(), v.end(), boost::bind(&function, arr[_1])) 在上面的代码中,有没有一种方法可以使用占位符作为

我将显示代码块

void function(int n) {}


int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
std::vector<int> v;
for (int i=0; i<10; i++)
    v.push_back(i);

std::for_each(v.begin(), v.end(), boost::bind(&function, arr[_1]))
在上面的代码中,有没有一种方法可以使用占位符作为数组的索引

我仅限于gcc 4.4.7,因此我不能使用C++11及更高版本。

如果您坚持使用boost::bind,您可以添加getValue函数,该函数获取索引并返回数组值,并进行绑定组合:

 int getValue(int* arr, int index)
 {
    return arr[index];
 }


 std::for_each(v.begin(), v.end(), 
          boost::bind(&function, boost::bind(getValue, arr, boost::placeholders::_1) ));

您想执行arr[v[i]]还是arr[i]它们在您的代码中执行相同的操作?为了清楚起见,请您详细说明for循环的等效值好吗?您希望传递给函数的是什么,数组中的值?还是元素的索引?二者都还有别的吗?@MaxLanghof我要啊[v[I]!!!也许应该在数组中使用不同的值,因为对于您显示的数组和向量的初始化,对于任何有效索引i,那么v[i]==i和arr[i]==i,从中可以得出arr[v[i]==i.@Someprogrammerdude不幸的是,我们正在使用一个支持gcc c++0x的编译器:除了添加函数,还有其他方法吗?非常感谢。