具有多个条件的向量迭代
Vector iteration with multiple conditions?
假设您有以下Int的向量:
std::vector<int> V={5,4,3,2,1,6,7,8};
我需要编写某种形式的迭代,将所有递减的int推入一个单独的向量以及第一个递增的int。
所以对于V,我需要{5,4,3,2,1,6}
我最初的想法是使用for循环:
std::vector<int> Results;
for(int i=V.size(); i--;)
{
if(V[i]>V[i+1]){Results.push_back(V[i]);};
}
然而,在这一点上,我被卡住了,我如何也能推回第一个递增元素(在本例中为6(?
您需要重新构造代码。例如:达到停止条件时中断。
std::vector<int> results;
for(int i = 0; i < v.size() - 1; ++i)
{
results.push_back(v[i]);
if(v[i] < v[i+1])
{
results.push_back(v[i+1]);
break;
}
}
bool decrease = false;
for(i = 0; i < v.size() - 1; ++i)
{
if(V[i] > V[i+1]) {
decrease = true;
results.push_back(v[i]);
} else if(decrease == true) {
break;
}
}
您可以添加一个标志来表示递减序列是否开始。
相关文章:
- std::向量迭代器和调整大小/保留的奇怪/有趣行为
- 如何取消引用向量迭代器
- Map中的(字符串的)向量迭代器
- C++将向量迭代器转换为索引
- yaml-cpp到std::向量迭代的怪异行为
- 使用索引与迭代器将向量迭代到倒数第二个元素
- 无法取消引用超出范围的向量迭代器 - 有什么问题?
- 向量迭代器不兼容的错误,用于保存另一个向量的迭代器的向量
- C++向量迭代器nth_element编译错误
- 无法查找值初始化的向量迭代器?
- C++向量迭代:常量 vs. 常量自动 vs. 无常量
- 向量迭代编译为非常不同的指令
- STD ::向量迭代器类型和允许的操作
- 如何通过尺寸未知的2D向量迭代
- 向量迭代器 < 或 !=
- 如何通过共享_ptr向量迭代
- 如何通过向量迭代作为指针
- 通过向量迭代,而其他线程可能会对其进行修改
- 我如何通过C 中的字符串向量迭代
- 向量迭代器在新对象的 push_back() 之后不兼容