vectorの中にmap
vectorの中にmapを入れて
添字:ノードID
[どのノードから来たのか|それまでのコスト]
を表現しようと考えています.
#include<iostream>
#include<vector>
#include<map>
#include<list>
// MACROS
#define UNDEF -1
// PROTOTYPE DCLARE
void init_path(std::vector<std::map<char, int> >, int size);
int main(void) {
//source -> source node
//
//size -> the number of node
//
//path -> store path infomation
// ex:
// path[1]: 1 is node id
// char : from node id
// cost : how cost from source to here
//
//adj -> show adjacency list eace node
int source;
int size;
std::vector<std::map<char, int> > path;
std::vector<std::list<char> > adj;
size = 5;
std::cout << "before" << std::endl;
init_path(path, size);
std::cout << "after" << std::endl;
std::map<char, int>::iterator it;
for(int i = 0; i < size; i++) {
it = path[i].begin();
// std::cout << it->first << ":" << it->second << std::endl;
}
return 0;
}
void init_path(std::vector<std::map<char, int> > path, int size) {
std::map<char, int> init;
init.insert( std::map<char, int>::value_type('-', UNDEF) );
for(int i = 0; i < size ; i++) {
path.push_back(init);
}
return;
}
*結果
before
after
Segmentation fault
となり初期化をする所までは正常に動いたっぽいのですが
どこが悪いのかわかりません(おそらくイテレータあたりかと思うのですが・・・・
具体的にどうしたらいいのか分からないのでご指導ねがいます.