C++ - 选择一组功能
C++ - selecting a set of features
我正在尝试在vector
中插入一个特征列表,然后,根据标准函数(即公式(的结果添加一个特征。到目前为止的代码如下所示。
这里我想问的主要部分是:
-
您认为以此处的方式插入功能是个好主意吗?也就是说,作为结构的向量?或者,只是立即添加功能?我制作结构向量的原因是我想向向量添加整数值,但同时要有特征的名称(即;F1, F2, ...等(。
-
对于下面显示的
criterionFunction()
,我正在尝试考虑例如features[1]
如果选择值(即传递给函数(1
值,否则0
。这里好像发生了什么boolean
事?:-)你建议在这里做什么?
#include "stdafx.h"
#include <iostream>
#include <vector>
int main(){
std::struct Features{ int F1, F2, F3, F4; };
std::vector<Features> listOfFeatures(4);
for(std::vector<Features>::iterator i = listOfFeatures.begin(); i != listOfFeatures.end(); i++)
{
std::int maxValue = criterionFunction(*listOfFeatures);
}
}
std::int criterionFunction(std::int *features)
{
return
-2*features[1]*features[2]
+3*features[1]
+5*features[2]
-2*features[1]*features[2]*features[3]
+7*features[3]
+4*features[4]
-2*features[1]*features[2]*features[3]*features[4];
}
谢谢。
这里有一些编译和类似于C++的东西,我希望它对你有所帮助:
编辑 添加的算法以实际将所有特征转换为标准列表,并获取这些特征的实际最大值。
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
struct Features{ int F1, F2, F3, F4; };
int criterionFunction(Features const& features)
{
return
-2*features.F1*features.F2
+3*features.F1
+5*features.F2
-2*features.F1*features.F2*features.F3
+7*features.F3
+4*features.F4
-2*features.F1*features.F2*features.F3*features.F4;
}
int main(){
std::vector<Features> listOfFeatures(4);
// TODO fill listOfFeatures
std::vector<int> listOfCriterion;
std::transform(listOfFeatures.begin(), listOfFeatures.end(),
std::back_inserter(listOfCriterion),
criterionFunction);
int maxValue = *std::max_element(
listOfCriterion.begin(), listOfCriterion.end());
}
我已经有一段时间没有碰过C++了,但我对你想做什么感到困惑。 根据您的问题和示例代码,我的印象是您混淆了矢量的作用。
矢量是可以动态调整大小的对象的集合。 当您致电时
std::vector<Features> listOfFeatures(4);
您正在创建 4 个功能结构的集合。 (即可容纳 16 个整数的房间,4 组 4 个,我认为您只需要 4 个(。
如果功能中总是有 4 个整数,我会坚持使用结构。如果你想命名它们并且有一个可变的数量,你需要使用类似地图的东西。
相关文章:
- 在 c++ 中拥有一组结构的正确方法是什么?
- 有哪些有效的方法可以消除一组 100 万个字符串>重复数据?
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 一组值的零开销下标运算符
- 使用一组结构,避免在一组结构中出现重复的结构
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 合并一组模板专用化
- 如何更好地检查两个 char 变量是否在一组值中?
- C++有没有办法强制重写一组方法,如果其中一个方法在子类中具有重写?
- 给定一个枢轴点,按照它们与枢轴点构成的角度递增顺序对一组点进行排序
- 如何从一组变量中查找最低值
- 如何根据对的第二个元素对 STL c++ 中的一组对进行排序?
- 如何通过查找迭代器结果分配给一组对的元素
- 读取一组用户输入,按升序排序,然后打印结果
- 如何从一组具有从左到右优先级的整数值创建有序整数键?
- 在 c++ 中定义一组 set 的迭代器
- 使用 C++20 概念强制类实现一组方法
- 这是定义一组递归规则的正确方法吗?
- C++ - 选择一组功能
- 类似于MS Excel中的图表功能,给定一组数字,生成数学方程来描述这组数字