C++中是否有任何等效的函数与 python 中的 astype() 函数等效
Is there any equivalent function in C++ as the astype() function in python?
我正在寻找一个函数,它可以在 c++ 中将数组的每个元素转换为浮点类型(就像 astype() 在 python 中所做的那样)。你知道吗?
谢谢
您可以将单个项目强制转换为float
,但不能一次强制转换整个数组。
您可以非常轻松地创建一个包含原始数组值的 float
s 向量,每个向量单独转换为类型 float
:
template <class T, size_t N>
std::vector<float> asFloat(T (&input)[N]) {
return std::vector<float> {input, input+N};
}
但是请注意,这将创建一个新的float
数组,其中包含从原始数组中创建的值,而不会更改/影响原始数组。另请注意,由于这是一个模板,因此可以将其应用于定义了从 T 到 float
的转换的任何类型,即使该转换可能没有多大意义或产生特别有用的结果(例如,char
):
char input[] = { 'a', 'b', 'c' };
auto result = asFloat(input);
如果打印出 result
的内容,通常会得到:
97 98 99
这是最常见的字符集(ASCII,Unicode等)中a
,b
和c
的编码,但这些作为浮点值并没有多大意义。
但是,根据注释,您只是在尝试创建一个float
数组。这里有几个小细节需要处理。一个是你可能真的想要一个vector
而不是一个数组。另一个是浮点文本默认为 double
类型。使用 double
值初始化 float
变量可能会(并且经常会)导致有关可能丢失数据的警告或类似内容。
因此,当您初始化 float
的数组或向量时,您通常希望包含一个后缀以强制值键入 float
:
std::vector<float> values { 1.0f, 2.0f, 3.0f};
相关文章:
- 从python中调用C++函数并获取返回值
- 从python调用openMP共享库时,未定义opnMP函数
- 有没有一个 c++ gmp 库函数与 python gmpy2 库 divm(..) 函数相同?
- C++中是否有任何函数等同于python中字典的get函数?
- 如何将 c++ get 函数代码转换为 opencv 算法中使用的 python
- 是否可以使用 libclang python 解析 cpp 文件中没有标头的函数原型
- 创建一个函数的 Python 绑定,返回指向带有 boost 的向量的指针
- 使用C++指针调用 python 函数
- 如何将 Python 字符串传递给 C++ (extern C) 函数
- 如何通过python方法和kwargs来提升python的c++函数和调用
- C++ python 中的函数返回数字而不是字符串
- 通过Cython对Python的基本C++函数
- 你如何决定将C++和/或 python 中的成员函数表示为静态?
- 使用 pybind11 调用 Python 函数时避免复制输入数据
- 从python调用C++函数,使用cython,使用cythonize
- 从 C++ 函数与 Python 函数返回的不一致值用于偏斜正态分布
- 在C++中实现类似 python "map"函数的问题:调用类成员函数
- Python 的 exec() 函数的 C++ 版本
- 如何使用 pybind11 将 python 函数保存到静态 c++ 容器中?
- 在 cpp 中嵌入 python:如何获取指向 python 函数(而不是 PyObject)的 C 指针?