私はC++で新しい(プログラミングでは古いものではない)と私はクラス内のベクトルとstrucを扱うことに問題があります。 基本的に私はクラスのメンバーを構造体へのベクトルとポインタの配列を持っていると私は私のmethosに上で動作しますが、イム何かworng /ここメソッドのベクトルと構造体のメンバを使用する方法
は私movement.hある
#pragma once
using namespace std;
class movement
{
private:
static const int MAX_ROW_PER_TRACKER = 100;
static const int MIN_TO_START_CALC = 30;
static const int MAX_TRACKERS = 20;
struct tracker
{
int id;
double a[MAX_ROW_PER_TRACKER];
double b[MAX_ROW_PER_TRACKER];
double c;
};
vector<int> trackersOrder[MAX_TRACKERS] = {};
tracker* trackersArr[MAX_TRACKERS];
public:
movement();
void addRow(int a, int b, int c);
~movement();
};
を行うと、私movement.cppそう
#include "stdafx.h"
#include "movement.h"
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
movement::movement()
{
}
void movement::addRow(int id, int a, int b)
{
int index;
vector<int>::iterator searchID = find(trackersOrder.begin(), trackersOrder.end(), ID);
if (searchID == trackersOrder.end())
{
vector<int>::iterator freeLocation = find(trackersOrder.begin(), trackersOrder.end(), 0);
index = freeLocation - trackersOrder.begin();
trackersOrder.insert(trackersOrder.begin + index, id);
structArr[index] = new tracker;
structArr[index]->id = id;
structArr[index]->a[0] = a;
structArr[index]->b[0] = b;
structArr[index]->c = 0;
}
}
movement::~movement()
{
}
i「がのAddRow」ID方法に送る、とbiは(ベクトルはちょうど私の構造体配列のインデックスを与える)私は出回っ私のベクトルで、このIDを持っている場合、最初にチェックしたいですそうでなければ、idを最初の空の場所に置いてくださいctorとstructs配列/ であるが、メシッドはベクトルと構造体を再構成しないと私は考えている。理由を理解するのを助けることができますか? p.s - 私は自分のコードでもっと間違いがあることを賭けることができます。私のコードは、ポインタとectで試してみます。 (私はMatlabの良い生活から来ているので)私もそれらに学ぶことが幸せになる ありがとう!
が見えるコンパイルありません。 'structArr'は' trackersArr'ですか? – NathanOliver
はいそのはずです!ありがとうございました! – Nadavp