我想将类型为T的矢量转换为K类型的矢量。 我试过这个,但它不起作用:
transform(vec.rbegin(),vec.rend(),vecNew.begin(),boost::bind(static_cast<K>(),_1));
我收到错误:“在'之前预期的primary-expression')'token”。我做错了什么?
答案 0 :(得分:4)
使用boost cast functor ll_static_cast<K>()
答案 1 :(得分:1)
除非没有从T到K的隐式转换,否则不需要静态转换。如果转换构造函数不是显式的,或者你是T :: operator K(),你可以这样做:
transform(vec.rbegin(),vec.rend(),vecNew.begin());
请注意,这也会颠倒元素的顺序。