Я новичок в программировании и хочу создать класс или заголовок (я, честно говоря, не уверен, что это такое, как я уже сказал, начинающий физик, пытаюсь использовать свое свободное время, но я предполагаю, что это файл заголовка, рассматриваемый как в нем будет определение объекта, который скоро будет упомянут). У меня проблемы с созданием вектора векторов. Я думал, что это было сделано примерно так:
#include <array>
#include <vector>
constexpr int MaxIterations = 101;
constexpr double aprox_PI = 3.141592653589793238463;
using PiArray = std::array<double, MaxIterations>;
using PiMatrix = std::array<PiArray, MaxIterations>;
using PiVector = std::vector<std::vector<double>> ; //here lies the problem, the ones above work fine.
class MonteCarloPiCalculator{
//some stuff goes in here, like function declarations. The definitions are in another file
}
Таким образом, размер и содержимое вектора можно добавить позже, но также можно определить заранее. Вот как я использую графический инструмент.
auto* gr4 = new TGraph(calc.VectPot.data(), calc.relDiff.data());
Из файла ROOT TGraph я нашел это:
TGraph(const TVectorF &vx, const TVectorF &vy);
TGraph(const TVectorD &vx, const TVectorD &vy);
Это означало бы, что я могу использовать векторы со значениями float и double в них. Еще до компиляции я получаю это сообщение в Visual Studio:
ни один экземпляр конструктора не соответствует типам аргументов списка аргументов: (const std :: vector ‹double, std :: allocator ‹double>> *, const std :: vector‹ double, std :: allocator ‹double>> *)
Как мне решить эту проблему? Буду признателен за любую помощь, которую я могу получить. Спасибо, что уделили время.