vector의 resize 함수를 사용할 때 어떤 방식으로 작동하는지 궁금해서 찾아봤다.


resize 함수는 vector를 초기화한 뒤 사이즈를 변경해주는 것이 아니라

1) 매개변수의 값이 vector의 사이즈보다 작으면 사이즈가 매개변수 값이 될 때 까지 끝에서부터 삭제

2) 매개변수의 값이 vector의 사이즈보다 크면 vector의 기존 요소는 변경되지 않고 뒤에 요소를 추가


--------------------------------------------------------------------------------------------------------------

2) 결과

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
temp.push_back(1);
temp.push_back(2);
temp.push_back(3);
temp.push_back(4);
 
cout << "~~resize before~~" << endl;
for (int i = 0; i < temp.size(); i++) {
    cout << temp[i] << endl;
}
 
temp.resize(5);
cout << "~~resize after~~" << endl;
for (int i = 0; i < temp.size(); i++) {
    cout << temp[i] << endl;
}
cs



--------------------------------------------------------------------------------------------------------------

1) 결과

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
temp.push_back(1);
temp.push_back(2);
temp.push_back(3);
temp.push_back(4);
 
cout << "~~resize before~~" << endl;
for (int i = 0; i < temp.size(); i++) {
    cout << temp[i] << endl;
}
 
temp.resize(2);
cout << "~~resize after~~" << endl;
for (int i = 0; i < temp.size(); i++) {
    cout << temp[i] << endl;
}
cs


https://msdn.microsoft.com/ko-kr/library/wezs0zy6.aspx

'C++' 카테고리의 다른 글

[C++] switch문 내부에서 변수 선언시 오류  (0) 2016.12.12
[라이브러리] string class 함수  (0) 2016.03.01

WritePrivateProfileString와 GetPrivateProfileString 함수는 API이며 .ini파일을 생성 및 저장/로드 할 수 있다.


BOOL WINAPI WritePrivateProfileString(
  _In_ LPCTSTR lpAppName,
  _In_ LPCTSTR lpKeyName,
  _In_ LPCTSTR lpString,
  _In_ LPCTSTR lpFileName
);

lpAppName : 섹션 이름(그룹)

lpKeyName : 키(hash-key와 비슷)

lpString : 키에 대응되는 값

lpFileName : ini파일의 경로


DWORD WINAPI GetPrivateProfileString(
  _In_  LPCTSTR lpAppName,
  _In_  LPCTSTR lpKeyName,
  _In_  LPCTSTR lpDefault,
  _Out_ LPTSTR  lpReturnedString,
  _In_  DWORD   nSize,
  _In_  LPCTSTR lpFileName
);

lpAppName : 섹션 이름(그룹)

lpKeyName : 키(hash-key와 비슷)

lpDefault : 키를 찾지 못했을 경우 얻는 값

lpReturnedString : ini파일에서 해당 키를 통해 받아올 텍스트의 버퍼

nSize : 버퍼의 크기

lpString : 키에 대응되는 값

lpFileName : ini파일의 경로



키는 ini파일 상에 존재하지만 값은 존재하지 않을 경우 해당 값은 어떻게 될까?


1. SIZE= 상태로 존재할 경우

 - buffer에 NULL값이 들어간다.


[BASE]

SIZE=

DELAY=0


SIZE 출력시 아무것도 보이지 않는다 = NULL


2. SIZE 상태로 존재할 경우

 - 키가 없다고 간주하여 buffer에 디폴트 문자열이 들어간다.


[BASE]

SIZE

DELAY=0


SIZE 출력시 디폴트 문자열이 출력된다.


https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms725501(v=vs.85).aspx

https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms724353(v=vs.85).aspx

'WIN32-MFC' 카테고리의 다른 글

[MFC] 현재 시간 가져오기  (0) 2016.12.02
[MFC] main함수의 위치는?  (0) 2016.11.23
[WIN32] 외부 링크 오류 해결  (0) 2016.11.22
[WIN32] LPSTR->LPCWSTR 임시로 고쳐놓은 것  (0) 2016.11.22
[WINAPI] 오류 해결  (0) 2016.11.21

.vcxproj : 프로젝트, 실행파일이나 dll등과 같은 파일을 만듦

.sln : 솔루션, 프로젝트를 관리


1개의 솔루션에 여러 개의 프로젝트가 들어갈 수 있다.


참고

http://egloos.zum.com/chez/v/1215189

http://luyin.tistory.com/193

+ Recent posts