gfg问题中的回溯分段错误错误

问题描述

https://practice.geeksforgeeks.org/problems/rat-in-a-maze-problem/1/?category[]=Backtracking&category[]=Backtracking&page=1&query=category[]Backtrackingpage1category[]Backtracking#

for fab in fabric_names:
        print(fab)
    for name,creator in zip(designName,creatorName):
        for fab_type in fabric_names:
            Design_Name = name
            Creator_Name = creator
            test_swatch_meter = data[1]
            fat_quarter_meter = data[2]
            meter = data[3]

            if (name,creator) not in items_dict.keys():
                items_dict[(name,creator)] = {}
            itemCount = len(items_dict[(name,creator)].values()) / 4
            items_dict[(name,creator)].update({'fabric_name_%02d' %itemCount: fab_type,'test_swatch_meter_%02d' %itemCount: test_swatch_meter,'fat_quarter_meter_%02d' %itemCount: fat_quarter_meter,'meter_%02d' %itemCount: meter})
df = pd.DataFrame.from_dict(items_dict,orient='index').reset_index(drop=False)
df = df.rename(columns={'level_0':'designName','level_1':'screenName'})
df.to_csv('scraped_data.csv',index=False)

这是我的解决方案,但我面临着分段错误错误。累了将近1:30小时,请检查代码错在哪里。

解决方法

您的 store 向量在使用前尚未分配大小。您可以先使用以下方法指定它的大小:

vector<vector<int>> store( n,vector<int> (n));

这将创建一个大小为 n x n 的二维向量

,

这些行:

vector<vector<int>> store;
    for(int i=0; i<n; ++i){
        for(int j=0; j<n; ++j){
            store[i][j]=0;   
        }

在这里,您没有像数组一样访问内存之前分配内存。 2d 向量有 size 0。首先使用 push_back() 分配内存或初始化大小为 n x n 的向量。