C++ 将"-"操作数与 list.back() 一起使用
C++ using "-" operand together with list.back()
我想在for循环中浏览一个列表并执行以下操作:
list<my_object> my_list;
for(int x = 0; x < my_list.size(); x++){
my_object tempObject = (my_list.back() - x);
//more actions...
}
但是,即使 http://www.cplusplus.com/reference/stl/list/back/显示和示例,您将"-"运算符与"back()"函数一起使用,Visual C++ 告诉我"没有运算符 "-" 与这些操作数匹配"......
我几天前开始了c ++,我不知道从这里开始。甚至有可能以这种方式浏览列表吗?
循环访问列表的适当方法是使用迭代器:
list<my_object> my_list;
for (list<my_object>::iterator i(my_list.begin()), end(my_list.end()); i!=end; ++i) {
my_object tempObject = *i;
//more actions...
}
将迭代器与 C++11 结合使用:
for (auto i = begin(my_list), end = end(my_list); i!=end(); ++i) {
my_object tempObject = *i;
//more actions...
}
您可以使用基于 C++11 范围的 for 循环:
for (my_object tempObject : my_list) {
//more actions...
}
或者,如果碰巧有一个 STL 样式算法模板已经执行了您的"更多操作":
more_actions(begin(my_list),end(my_list));
在示例中,您链接到列表中的元素是一个int
这就是它在那里工作的原因。您要做的是从 my_object
的实例中减去一个整数。没有内置函数来执行此操作,但如果有一个函数operator-(my_object &lhs, int rhs)
那么这是可能的。
相关文章:
- 如何将enable-if与模板参数和参数包一起使用
- 如何将PERF_AMPLE_READ与mmap一起使用
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将C++中的库和头与MinGW一起使用
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 为什么我不能将 rand() 与数组的大小一起使用?
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 不能将复制初始化与隐式转换的多个步骤一起使用
- 将fold表达式与std::一起用于两个元组
- spdlog标头仅与外部fmt一起使用.spdlog错误:'内部':不是'fmt'
- 将 std::allocate_shared 与多态资源分配器一起使用
- 为什么常量词在重载运算符中不与 ostream 对象一起使用<<?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 将 exprtk 与自定义类的对象一起使用
- 将 std::set 与基于键的比较器一起使用
- 将 C++ 类与 Rcpp 一起使用,从 C 或 R 修改它
- 如何将 Eigen::Ref 与 pybind11 一起使用?
- 如何将AERT_Allocate与 std:vector 一起使用
- 如何使我的 sizeof sum 结构与空参数包一起工作
- C++ 将"-"操作数与 list.back() 一起使用