Я работаю с STL, но у меня нет C++ 0x, и я не могу использовать boost, мне интересно, есть ли способ связать 2 или более аргумента функтора при использовании станд :: генерировать? Что-то вродеstl functor с более чем 2 аргументами
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
float f(int x, float y, float z) {return x*(y+z);}
int main(void)
{
std:vector<int> v(100);
float x=1.2, y=-3.3;
generate(v.begin(), v.end(), bind3argu(f, _, x, y)); // something like this: '_' is from vector
// as suggested, I also try
generate(v.begin(), v.end(), std::bind(f, x, y));
return 0;
}
Я пытаюсь использовать std :: bind, но не компилируется с g ++ 4.4.6. BTW, поддерживает std :: bind в C++ 0x и/или C++ 11?
'main' должен иметь тип возврата' int'. – chris
Что это за '_' часть, исходящая от вектора? Это начальное значение, которое могут содержать векторные элементы? – Mahesh
привет Махеш, код, который я публикую, не существует, я просто хочу показать идею, которую я хочу реализовать. _ обозначает элементы вектора. – user1285419