Использование итератора цикла for в строкеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Использование итератора цикла for в строке

Сообщение Anonymous »


У меня небольшая проблема, но я не знаю, как ее решить. Я хочу использовать итератор из цикла for, чтобы получить различные гистограммы в моих корневых файлах. Я правильно прочитал корневые файлы и знаю, что полученная ошибка как-то связана с итератором в моей строке. Но я не знаю, как это сделать правильно. Я пробовал использовать Form(), но он не работает.

Имена моих гистограмм в корневых файлах: bin_1_h0_01, bin_2_h0_01 и так далее до bin_512_h0_01. Вот почему мне нужен итератор.

TFile* simHistograms = TFile::Open("sim_output_histograms.root", "READ"); TFile* dataHistograms = TFile::Open("data_output_histograms.root", "READ"); for(int я {1}; я Get(Form("bin_%i_h0_01", i)); Данные TH1F* = (TH1F*)dataHistograms->Get(Form("bin_%i_h0_01", i)); сим->SetDirectory(0); данные->SetDirectory(0); ... } Я получаю следующее сообщение об ошибке:

/../analyzeData_plot.cpp:33:9: предупреждение: null передается вызываемому объекту, которому требуется непустой аргумент [-Wnonnull] сим->SetDirectory(0); ^~~ ROOT-версия: 6.28/04 Платформа: Ubuntu 20.04.2 Компилятор: g++ 9.4.0
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»