Я получаю ошибку сегментации в следующем коде, может ли кто-нибудь объяснить. Я думаю, что это может быть связано с инициализацией, но не уверен. Я просто пытаюсь клонировать существующий стек и выполнять операцию, такую как добавление записи в клон или удаление записи из существующего и клонирование ее в новый стек.C++ 2D вектор Ошибка SIGSEV
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <deque>
#include <string>
using namespace std;
#define in cin
#define out cout
int main()
{
//ifstream in("postfix.in");
//ofstream out("postfix.out");
int n;
in>>n;
long sum=0;
vector<int> tm(0);
vector<vector<int>> ar(0,tm);
//ar[0].push_back(0);
out<<ar[0][0];
for(int i=0;i<n;i++)
{
int ind,val;
in>>ind>>val;
if(val==0)
{
for(int j=0;j<ar[ind-1].size();j++)
ar[i].push_back(ar[ind-1][j]);
ar[i].pop_back();
}
else
{
for(int j=0;j<ar[ind-1].size();j++)
ar[i].push_back(ar[ind-1][j]);
ar[i].push_back(val);
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<ar[i].size();j++)
sum+=ar[i][j];
}
out<<sum<<endl;
return 0;
}
Вы отлаживали его? – Carcigenicate
'#define in cin #define out cout' - Пожалуйста, прекратите это делать. Это просто добавляет путаницу кому-то, читающему код - каждый программист на C++ знает, что 'cin' и' cout' не скрывают макрос '# define'. – PaulMcKenzie
Я использую оператор #define, потому что я должен протестировать его на консоли, прежде чем использовать его с потоком файлов, это просто для удобства, и я просто вставил оригинальный код здесь, извините за это. – shubhamrock828