前提・実現したいこと
n個の点の運動シミュレーションに構造体配列を使っています.
コード中でa[i].category=1になったらその点の運動は以後計算しない(配列から削除して実行時間を短縮したい)ようにしたいと思いますが,以下のように考えたところ「式にはクラス型が必要です」とエラーが出てしまいます.
ただ調べてもどうするべきかよく分からなかったのでいい解決方法を教えていただけますと幸いです.
発生している問題・エラーメッセージ
式にはクラス型が必要です
該当のソースコード
C++
1 2#include <iostream> 3#include <string> 4#include <stdint.h> 5#include <vector> 6#include <stdio.h> 7#include <stdlib.h> 8#include <cmath> 9#include <iostream> 10#include <math.h> 11#include <fstream> 12#include <sstream> 13#include <algorithm> 14#include <chrono> 15#include <utility> 16#include <time.h> 17#include <tuple> 18#include <cstdint> 19#include <cstdio> //明らかに不要なincludeがありますがとりあえず無視でお願いします. 20using namespace std; 21 22 23#define N 10000 24#define TIMELIMIT 1000 25 26 27//座標値 28struct coordinate { 29 double x; 30 double y; 31}; 32 33/*エージェントの表現*/ 34struct agent { 35 int category;/*エージェントの種類*/ 36 struct coordinate p;/*座標*/ 37}; 38 39 40int main(int argc, char *argv[]){ 41 struct agent a[N] = { 0 }; 42 //追跡店の初期分布,運動の内容など今回問題となっている箇所と関係ない部分は省略してあります. 43 for (int T = 1; T <= TIMELIMIT; ++T) {////打ち切り時間まで計算 44 for (int i = 0; i < N; ++i) { //各エージェントの計算 45 if (a[i].category == 1) { 46 a[i] = a.back(); 47 a.pop_back();//今回問題になっているのはここの2行です 48 } 49 } 50} 51} 52 53
補足情報(FW/ツールのバージョンなど)
コンパイラは最新のものにしてあります.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/21 09:27