본문 바로가기

C++/한 줄 정리8

벡터에서 음수 인덱스도 접근은 가능하다 기본적으로 음수 인덱스는 벡터 앞의 부분을 가리킨다 인덱스 0으로부터 인덱스 번호*자료형 크기 만큼의 앞의 메모리를 주소값으로 가지고 값으로 쓰레기값을 가지고 있다 쓰레기 값을 가지지만 더하기 빼기 등등 요소의 기본적인 연산은 가능하다 하지만 쓰레기값을 가지고 다루는 것이기에 값은 계산해도 쓸수가 없다 초기 값이 쓰레기 값이므로... 하지만 그 음수 인덱스를 초기화한다면, 그 음수 주소값이 가리키는 값은 우리가 초기화한 값을 가리켜서 실제로 계산이 가능하고 원하는 대로 사용이 가능하다 예를 들어 인덱스 0 -1 에 접근해서 그 값을 ++하는 코드가 있다면, -1인덱스의 값을 따로 a[-1]=4 처럼 초기화했다면 인덱스 -1에도 연산이 적용 될 것이고, 초기화 하지 않았으면 쓰레기값++ 이니 의미없는 값은.. 2022. 6. 22.
벡터도 넣은 요소는 인덱스로 접근이 가능하다 0부터 벡터.size() -1 만큼 인덱스를 읽는것이 가능하다 넣은 만큼은 인덱스를 읽어서 사용 가능하다는 뜻이니 자주 쓰도록 하자 2022. 6. 22.
cin 입력 후 다른 타입의 입력 시 꼭 cin.ignore를 해줘야 한다 정수형 cin을 입력 시, 숫자가 입력 버퍼에 저장되지 않고 바로 변수에 저장이 된다 하지만 문자열을 cin으로 입력 시, 입력 버퍼에 저장한 문자를 읽어서 변수로 저장한다 정수형 변수에 입력중에 문자열 변수가 입력이 되면 문자는 입력버퍼에 저장되고 cin은 이 버퍼의 문자를 정수형 변수에 저장하려고 하므로 정상 저장이 되지않고 에러가 나는 것이다 문자열 입력 시에도 \n 이 입력 버퍼에 남아서 문제가 되곤하니 이전 cin 사용 후 cin 이나 getline 등으로 새로운 자료형의 입력을 받을 때에는 항상 cin.ignore() 를 사용해서 입력버퍼를 비워주고 사용하자 2022. 6. 21.
hash 해시 사용 시 key값이 없을 때 호출하면 key 추가 후 value는 0이다 간혹 if 문에서 if( map[없는key값] ) 이렇게 쓰일 때가 있다 아니 맵에 없는 key를 호출하면 어쩌나 있는지부터 확인해야 되는거 아니냐 하지말자 맵에 없는 key를 호출 시 map에 자동으로 그 key값과 디폴트 value 로 0을 추가해준다 즉, if 문에서 위와 같이 조건으로 사용시, 있으면 그 key에 맞는 value값을, 없다면 디폴트 value 0 즉 거짓을 반환하게 된다 2022. 6. 21.