C++ 如何从阵列的中间开始循环?

C++ 如何从阵列的中间开始循环?,c++,C++,有一个给定的伪代码 int Function(X : array[P..Q] of integer) 1 maxSoFar = 0 2 for L = P to Q 我用C,试图把它变成C++代码。< /P> 我之所以与之抗争,是因为我不知道如何表达它是从循环中的“p”开始的。 在初始化之前,即使没有参数,我也不知道如何做到这一点 int Function(vector<int> X) { int maxSoFar = 0; for (int I =

有一个给定的伪代码

int Function(X : array[P..Q] of integer)
  
1 maxSoFar = 0
  
2 for L = P to Q
<>我用C,试图把它变成C++代码。< /P> 我之所以与之抗争,是因为我不知道如何表达它是从循环中的“p”开始的。 在初始化之前,即使没有参数,我也不知道如何做到这一点

 int  Function(vector<int> X)
 {
   int maxSoFar = 0;
   for (int I = 0; I < X.size(); I++) ;
 }
int函数(向量X)
{
int maxSoFar=0;
对于(inti=0;I
这就是我所做的。
我想知道它是否与伪代码相同。

您可以将向量大小除以2:

#包括
#包括
使用名称空间std;
int f(向量v){
int maxSoFar=0;
int len=v.size();
对于(inti=len/2;iCouthOf你在C++中对数组进行正常的迭代吗?有没有可能改变它的部分来改变起始点?如果你试图把伪代码翻译成C++,但是你不知道如何停止循环,为什么不从你知道的写下来(比如写一个不过早中断的循环)否则,在C++中,你可以在C++代码中添加一些部分,但是我不确定它是否与伪代码相同。저의 대답 보세요 迭代器还有很多其他方法,你可以用谷歌搜索itOutput:输入元素数:4输入这个数组的值:1 3 5 7打印这个数组的最后一半元素:5 7你可以通过编辑答案来添加输出,而不是添加相同的注释。
3 3
5 8
#include<iostream>
using namespace std;
int main()
{
    int i,n;
    cout<<"enter the number of elements : ";
    cin>>n;
    int a[n];
    cout<<endl<<"enter the value of this array : ";
    for(i=0;i<n;i++)
    {
        cin>>a[i];
    }
    cout<<endl<<"print the last half elements of this array : ";
    for(i=(n/2);i<n;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}