Вы не создали массив объектов std::list
, когда вы использовали malloc
. Все malloc
- это выделение памяти из кучи - никаких объектов не создается. Таким образом, попытка использовать ваши std::list
, как если бы они были созданы правильно, приведет к неопределенному поведению .
Вы должны использовать контейнер, например std::vector
, чтобы сохранить свой список objects:
#include <vector>
#include <list>
class graph
{
int v;
std::vector<std::list<int>> adj;
void dfsutil(int v,bool visited []);
public:
graph(int num) : v(num), adj(num) {}
void addedge(int v,int w);
void dfs(int v);
};
Обратите внимание: нет необходимости выделять память. Остальная часть вашего кода должна оставаться неизменной, поскольку vector
имеет перегрузку operator []
для доступа к элементам.
Я использовал это в прошлом:
// Gets the base url in the following format:
// "http(s)://domain(:port)/AppPath"
HttpContext.Current.Request.Url.Scheme
+ "://"
+ HttpContext.Current.Request.Url.Authority
+ HttpContext.Current.Request.ApplicationPath;