2017-05-30 57 views
0

如何使用变换将数字列表除以2?我认为这个代码会做到这一点,但它只将整个列表中的数字1与2分开,所以我必须完全错过这个。有人能帮助我吗? :)C++使用变换除数(绑定)

list<T> v(5, 1); 
list<T> d; 
d.resize(v.size()); 

transform(v.begin(), v.end(), d.begin(), bind(divides<T>(), placeholders::_1, 2)); 
cout << fixed << setprecision(2); 
for (list<T>::iterator i = d.begin(); i != d.end(); i++){ 
    std::cout << *i << endl; 
} 
system("pause"); 
+0

那么你初始化列表'与五行,全部为整数'v' 1'。那么你还期望什么? –

+0

好吧,我的错误,我想我认为占位符:: _ 1是某种常量(我在某处读到_1被放弃了x,但我必须有missunderstod)。那么,我能做些什么来改变这一点,我想我需要的东西比placehoders然后呢?! – StudentLerning

+0

'placeholders :: _ 1'是第一个参数的占位符,您正确使用它。我正在讨论将变量'v'的构造作为五个'1'的列表。如果你打印出'v'列表,你会发现它全是'1'。所以当然结果是所有部门都是'1/2'。问题不在于你如何使用'transform'或'bind'或类似的东西,它是源数据是问题所在。 –

回答