前提・実現したいこと
std::vector<double>のBalance_sumをcoutで出力したいです
発生している問題・エラーメッセージ
error C2679: 二項演算子'<<':型'std::vector<double,std::allocator<_Ty>>'の右オペランドを扱う演算子が見つかりません(または変換できません)。
IntelliSense: これらのオペランドと一致する演算子'<<'はありません
該当のソースコード
//各行の計算値を1500段分ごとに総和を求めて出力する
#include "pch.h"
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <iomanip>
#include <numeric>
using namespace std;
vector<string> split(const string &str, const string &delim){
vector<string> tokens; size_t cp, fp; const size_t dsize = delim.size(); for (cp = 0; (fp = str.find(delim, cp)) != string::npos; cp = fp + dsize){ tokens.emplace_back(str, cp, fp - cp); } tokens.emplace_back(str, cp, str.size() - cp); return tokens;
}
vector<vector<string>> parseTable(istream &stream, const string &delim){
vector<vector<string>> table; string str; while (getline(stream, str)){ table.push_back(split(str, delim)); } return table;
}
vector<vector<string>> parseTable(const string &str, const string &delim){
stringstream ss(str); return parseTable(ss, delim);
}
int main(){
std::ifstream ifs("筋電・加速度データ.csv"); //csvファイル読み込み std::string str; bool flag = true; std::vector<double> Balance_sum; //差の合計 double RightData = 0; //右側の計測値 double LeftData = 0; //左側の計測値 double Balance = RightData - LeftData; //計測値の差 int counter = 0; //行数 const int MAX_count = 1500; //行数の最大(1500段) while (getline(ifs, str)){ if (flag){ flag = false; continue; //その行が文字列なら処理を飛ばす } else{ int num; //行の各値をそれぞれ設定する double EMGR, rightx, righty, rightz, EMGL, leftx, lefty, leftz; sscanf_s(str.c_str(), "%d,%10lf,%10lf,%10lf,%10lf,%10lf,%10lf,%10lf,%10lf", &num, &EMGR, &rightx, &righty, &rightz, &EMGL, &leftx, &lefty, &leftz); if (counter < MAX_count){ RightData = rightx*rightx + righty*righty + rightz*rightz; LeftData = leftx*leftx + lefty*lefty + leftz*leftz; counter++; //行数が1500段でなければ三方向ベクトルを絶対値化して次の行へ } if (counter == MAX_count){ Balance_sum.push_back(Balance); counter = 0; RightData = 0; LeftData = 0; std::cout << setprecision(40) << Balance_sum << std::endl; } } }
}
試したこと
出力部分をBalance_sum[Balance]にしたり、vec.Balance_sumにしたりしましたが、出力結果が正しくなかったり、また違うエラーが出たりしました
std::accumulate(Balance_sum.begin(), Balance_sum.end(), 0.0)とした場合、"引数 4 が必要です - 3 が設定されます"とエラーが出ました
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。