如何使用矢量元素向结构添加项目?

问题描述 投票:0回答:1

我想添加一个矢量的峰值位置和峰值数,但是我找不到找到添加元素然后返回它或在控制台上写它的方法。

#include <iostream>
#include <vector>

using namespace std;

struct PeakData {
      vector<int> pos, peaks;
};

PeakData pick_peaks(vector<int> v) {
   PeakData result;
   for (int i = 1; i < v.size() - 1; i++) {
       if ((v[i] > v[i - 1]) && (v[i] > v[i + 1])) {
           result.peaks.push_back(v[i]);
            result.pos.push_back(i);
        }
   }
        return result;
}

[示例:pickPeaks([3,2,3,6,4,1,2,3,2,1,2,3])应该返回{位置:[3,7],峰值:[6,3] }

c++ vector structure push-back
1个回答
0
投票

将此添加到您的主要功能:

int main()
{

    vector<int> a = {3, 2, 3, 6, 4, 1, 2, 3, 2, 1, 2, 3};
    PeakData stPickPeaks = pick_peaks(a);
    vector<int> :: iterator itr;
    for(itr = stPickPeaks.pos.begin(); itr<stPickPeaks.pos.end(); itr++)
    {
        cout <<*itr<<endl;
    }

    for(itr = stPickPeaks.peaks.begin(); itr<stPickPeaks.peaks.end(); itr++)
    {
        cout <<*itr<<endl;
    }

    return 0;
}

0
投票

更准确地说:

© www.soinside.com 2019 - 2024. All rights reserved.