c++ - vector float 到整数/符号的转换

标签 c++ vector

我有一个 vector

vector<float>v = {-0.2f, 1.4f, -6.5f};

我喜欢它被转换成

v = {-1, 1, -1};

逻辑是:对于每个元素,如果小于0,则设置为-1,如果等于0,则设置为0,如果大于0,则设置为1。

最佳答案

您可以使用 std::transform进行比较并相应地替换元素。

std::transform(v.begin(), v.end(), v.begin(), [](float f)
{
    return f == 0 ? 0 : (f < 0 ? -1 : 1);
});

关于c++ - vector float 到整数/符号的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49907294/

相关文章:

C++:类成员中的默认值

c++ - C++中的S后缀字符串文字给出错误

c++ - 带有 remove_copy_if 的 back_insert_iterator

c++ - Const 正确性 - 如何在 C++ 中访问 vector vector 的元素?

c++ - 如何在boost python中访问 vector

c++ - 如何为多边形网格生成半边结构表示?

c++ - X f() 是什么意思?

C++ unique_ptr 初始化

c++ - 希望在 STL vector 中找到 C++ STL vector

r - 1 :5 and c(1, 2,3,4,5) 和有什么区别?