C ++ map <int, vector <int>> 분할 오류

아카 쉬자인

파일에서 방향성 그래프 인접 목록을 읽으려고합니다. 각 노드의 맵에 연결된 노드의 벡터에 저장합니다. 다음은 노드 1에 연결된 노드에 대한 입력 라인의 예입니다.

1   37  79  164 155 32  87  39  113 15  18  78  175 140 200 4   160 97  191 100 91  20  69  198 196

성공적으로 컴파일되지만 실행 중에는 아래 표시된 루프에서 세그먼트 오류가 발생하는 다음 코드가 있습니다.

typedef map<int, vector<int> > adjList;
ifstream file;
file.open("kargerMinCut.txt", ifstream::in);
string line;
adjList al;
while(!file.eof())
{
    getline(file, line);
    stringstream buffer(line);
    int num;
    buffer >> num;
    al.insert(make_pair(num, adjList::mapped_type()));

    // the below loop causes segmentation fault
    while (!buffer.eof())
    {
        buffer >> num;
        al.end()->second.push_back(num);
    }
}

저는 STL을 처음 사용하므로 분명한 것을 놓칠 수 있지만 도와주세요.

Ivaylo Strandjev

모든 stl 컨테이너에 대해 마지막 end요소 한 요소에 대한 반복자를 반환합니다 . 따라서이 요소에 액세스해서는 안됩니다. 문제가있는 라인은 al.end()->second.push_back(num);입니다. 를 사용 al->rbegin()하여 마지막 유효한 요소에 액세스 할 수 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++ : 오류가 std :: vector <int> *에서 std :: vector <std :: vector <int>로 변환 할 수 없습니다.

분류에서Dev

C ++ : pair <vector <int>, vector <int >> p;

분류에서Dev

unorder_map <int, std :: vector <double >>의 세그 오류

분류에서Dev

오류 'no match for call to vector <int> normal_iterator <int *, vector <int>> :: difference_type)'

분류에서Dev

int 행렬의 분할 오류

분류에서Dev

std :: map :: insert에서 C ++ 분할 오류

분류에서Dev

C # 오류 : ""int "를"System.Func <Creature, int> "로 변환 할 수 없습니다."

분류에서Dev

오류 C2440 : '=': 'int *'에서 'int **'로 변환 할 수 없습니다.

분류에서Dev

배열에 int를 할당하는 동안 분할 오류

분류에서Dev

C ++ "오류 : 'const std :: map <int, std :: basic_string <char>>'을 'this'인수로 전달 ..."

분류에서Dev

About C++ priority_queue what does vector<int> do in priority_queue<int, vector<int>, greater<int> > pq?

분류에서Dev

C ++ 할당 해제 2d int 배열 오류

분류에서Dev

Google Test로 Map <int, vector> 테스트

분류에서Dev

오류 C2664 : 'print_result': 매개 변수 1을 'int (__cdecl *) (int, int, int)'에서 'int'로 변환 할 수 없습니다.

분류에서Dev

std :: map <std :: basic_string <char>, std :: pair <int, int (*) (const std :: vector :: Mat

분류에서Dev

C ++ : vector <byte>의 모든 위치에서 int 가져 오기

분류에서Dev

컴파일 오류 : " 'std :: vector <Card *> :: insert (int, Card * &)'호출에 일치하는 함수가 없습니다."C ++

분류에서Dev

C : 분할 오류

분류에서Dev

C ++ [오류] 읽기 전용 위치 할당 '* (a + ((sizetype) (((long long unsigned int) min) * 4ull)))'

분류에서Dev

'카드'를 'int'로 변환 할 수 없습니다.-C ++ 컴파일 오류

분류에서Dev

mysql INT (11) 오류

분류에서Dev

C ++ priority_queue에 대하여 vector <int>는 priority_queue <int, vector <int>, greater <int>> pq에서 무엇을합니까?

분류에서Dev

std : string 및 std :: vector <int> 쌍을 사용하여 std :: map에 대해 << 연산자를 오버로드 할 수 있습니까?

분류에서Dev

std :: vector <int>에서 char [] C ++로 변환

분류에서Dev

C ++ Vector <int> 배열 초기화

분류에서Dev

long long int를 사용하고 분할 오류를 제거하는 방법

분류에서Dev

JSONObject를 정수로 구문 분석 할 때 잘못된 int 오류

분류에서Dev

map [int] interface {} 대 map [int] struct {}의 메모리 할당

분류에서Dev

AutoMapper Map Int

Related 관련 기사

  1. 1

    C ++ : 오류가 std :: vector <int> *에서 std :: vector <std :: vector <int>로 변환 할 수 없습니다.

  2. 2

    C ++ : pair <vector <int>, vector <int >> p;

  3. 3

    unorder_map <int, std :: vector <double >>의 세그 오류

  4. 4

    오류 'no match for call to vector <int> normal_iterator <int *, vector <int>> :: difference_type)'

  5. 5

    int 행렬의 분할 오류

  6. 6

    std :: map :: insert에서 C ++ 분할 오류

  7. 7

    C # 오류 : ""int "를"System.Func <Creature, int> "로 변환 할 수 없습니다."

  8. 8

    오류 C2440 : '=': 'int *'에서 'int **'로 변환 할 수 없습니다.

  9. 9

    배열에 int를 할당하는 동안 분할 오류

  10. 10

    C ++ "오류 : 'const std :: map <int, std :: basic_string <char>>'을 'this'인수로 전달 ..."

  11. 11

    About C++ priority_queue what does vector<int> do in priority_queue<int, vector<int>, greater<int> > pq?

  12. 12

    C ++ 할당 해제 2d int 배열 오류

  13. 13

    Google Test로 Map <int, vector> 테스트

  14. 14

    오류 C2664 : 'print_result': 매개 변수 1을 'int (__cdecl *) (int, int, int)'에서 'int'로 변환 할 수 없습니다.

  15. 15

    std :: map <std :: basic_string <char>, std :: pair <int, int (*) (const std :: vector :: Mat

  16. 16

    C ++ : vector <byte>의 모든 위치에서 int 가져 오기

  17. 17

    컴파일 오류 : " 'std :: vector <Card *> :: insert (int, Card * &)'호출에 일치하는 함수가 없습니다."C ++

  18. 18

    C : 분할 오류

  19. 19

    C ++ [오류] 읽기 전용 위치 할당 '* (a + ((sizetype) (((long long unsigned int) min) * 4ull)))'

  20. 20

    '카드'를 'int'로 변환 할 수 없습니다.-C ++ 컴파일 오류

  21. 21

    mysql INT (11) 오류

  22. 22

    C ++ priority_queue에 대하여 vector <int>는 priority_queue <int, vector <int>, greater <int>> pq에서 무엇을합니까?

  23. 23

    std : string 및 std :: vector <int> 쌍을 사용하여 std :: map에 대해 << 연산자를 오버로드 할 수 있습니까?

  24. 24

    std :: vector <int>에서 char [] C ++로 변환

  25. 25

    C ++ Vector <int> 배열 초기화

  26. 26

    long long int를 사용하고 분할 오류를 제거하는 방법

  27. 27

    JSONObject를 정수로 구문 분석 할 때 잘못된 int 오류

  28. 28

    map [int] interface {} 대 map [int] struct {}의 메모리 할당

  29. 29

    AutoMapper Map Int

뜨겁다태그

보관