我如何适应擦除式习惯与矢量元组一起工作
How can I adapt the erase-remove idiom to work with vector tuples?
我有一个带有j,k和l成员的元素向量。我正在尝试调整擦除示例的成语,以便如果.k成员的值符合一定条件,则可以删除整个元组。
我尝试使用标准.erase(Remove F(((方法,其中谓词引用了元组成员的位置,但被告知所讨论的矢量类别没有成员" k"。
vec_list_iter_exp_out.erase(
std::remove_if(
vec_list_iter_exp_out.begin(),
vec_list_iter_exp_out.end(),
vec_list_iter_exp_out.k < 33), vec_list_iter_exp_out.end());
我希望,如果Vec_list_iter_exp_out由以下,假设值组成:
vec_list_iter_exp_out[0] = 5, 22, 9
vec_list_iter_exp_out[1] = 12, 31, 54
vec_list_iter_exp_out[2] = 17, 42, 0
vec_list_iter_exp_out[3] = 253, 3, 5
vec_list_iter_exp_out[4] = 65, 110, 24
vec_list_iter_exp_out [2]和vec_list_iter_exp_out [4]的整体将被删除,vec_list_iter_exp_out将包含以下内容:
vec_list_iter_exp_out[0] = 5, 22, 9
vec_list_iter_exp_out[1] = 12, 31, 54
vec_list_iter_exp_out[2] = 253, 3, 5
相反,我得到了上述编译错误。
任何帮助将不胜感激!
编辑:根据要求的向量的定义。
struct TriStore
{
double j,k,l;
};
std::vector<TriStore> vec_list_iter_exp_out;
和用于插入的摘要(显然引用了其他功能和什么功能,但这会占用太多空间(
for(int z = 1; z <= iters; z++)
{
vec_iters.push_back(vec_list_iter_exp_out.size());
for(int i = vec_iters[z-1]; i < vec_iters[z]; i++)
{
if(vec_list_iter_exp_out[i].k < kk)
{
triangle_list(vec_list_iter_exp_out[i].j,vec_list_iter_exp_out[i].k,vec_list_iter_exp_out[i].l);
vec_list_iter_exp_out.insert(vec_list_iter_exp_out.end(),vec_tri_list.begin(),vec_tri_list.end());
}
}
}
remove_if
的第三个参数需要是一个谓词。相反,您正在传递一个表达式。
而不是vec_list_iter_exp_out.k < 33
尝试类似[](const TriStore &x){return x.k < 33;}
如果我想在运行时决定此
33
来自Nishant Singh的这一评论:请使用
[&value](const TriStore& x) {return x.k < value;} // Capture by reference [value](const TriStore& x) {return x.k < value;} // Capture by value
P.S。而不是TriStore
,为什么不使用tuple<double, double, double>
?
相关文章:
- C++:TypeDef使用元组
- Pybind11:将元组列表从Python传递到C++
- 重载元组索引运算符-C++
- 在C++中,如何通过几种类型从元组中选择多个元素
- 将fold表达式与std::一起用于两个元组
- std::ranges::elements_view,用于自定义类似元组的数据
- 将元组的向量转换/构造为堆
- 专用于 std 元组的模板,而无需用户执行remove_cvref
- 将元组的向量构造成堆
- 元组由 Swig 生成的 Python 包装器返回,用于C++向量
- 将元组类型扩展为可变参数模板?
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 类内部和外部静态 constexpr 元组之间的差异
- 可变参数模板与使用元组在参数中添加不同的数据对
- 访问和打印元组中的数据,并使用 C++14 使用模板函数显示数据
- boost::包含提升单元的元组的哈希值
- 将 auto 与生成元组的可变参数模板一起使用
- 是否可以与Gurobi一起使用C 中的元组
- 我如何适应擦除式习惯与矢量元组一起工作
- 将boost::make_recurive_variant与元组一起使用