Notice
Recent Posts
Recent Comments
Link
Yejom's Dev Log
[C++ 입문] 5. list, string 본문
- 리스트(list)
- 어떤 데이터를 저장할때 그 다음 순서의 자료가 있는 위치를 데이터에 포함시키는 방식으로 자료를 저장
#include <list> // list 헤더파일을 추가해야 사용 가능
list<int> my_list = { 1,2,3,4,5 }; // 리스트 선언
list<int> my_list(4); //int형 리스트 생성 후 크기를 4로 할당(모든 요소 0으로 초기화)
list<int> my_list(5, 1); //int형 리스트 생성 후 크기를 5로 할당(모든 요소 1로 초기화)
v.assign(5, 1); //0~4인덱스의 값을 1로 초기화
- 리스트 반복문
- 임의 접근 반복자 at(), [] 불가능, 양방향 반복자 (++,--)이용해서 탐색 (list 전용 반복자(list<int>::iterator)를 사용)
- push_front(), push_back(), pop_front(), pop_back() 이용해서 양 끝에서 삽입, 삭제 가능
- insert(), erase() 멤버 함수를 통해서 노드 중간에서도 삽입, 삭제 가능
// 리스트 제어용 반복자 생성
list<int>::iterator iter = my_list.begin();
// 리스트 출력
// 리스트 첫 번째 값의 포인터를 반복자로 지정하여 탐색
for (iter = my_list.begin(); iter != my_list.end(); iter++)
{
cout << *iter << endl;
}
myList.remove(2); // 리스트 내의 2를 모두 지움.
myList.remove(isOdd); // isOdd 함수의 조건에 맞는 값(짝수)을 모두 지움.
myList.splice(위치, 넣을 요소); // 리스트 자체를 다 옮겨 붙일 수도 있음.
list1.merge(list2); // 리스트끼리 합치고 정렬함 ~ 정렬당한(?) list2의 값은 모두 지워짐.
myList.unique(2); // algorithm 과 같이 sort 해줘야 함.
- 상수 : 절대 변하지 않는 고정값
// 변동되는 수는 안됨.
ex) const int pi ; 3.141592;
- 문자열(string)
- getline()
getline(cin, str); // ab cde
cout << str << endl; // => ab cde 출력
getline(cin, str, 'a'); // edc ba
cout << str << endl; // => edc b 출력
// a가 나올 때까지 입력 받고, 엔터 상관없이 a 이전까지 입력한 모든 값을 출력함.
- string 함수
string str;
str.at(index) – index위치의 문자 반환, 범위 체크O
str[index] - index위치의 문자 반환, 범위 체크X
str.front() – 가장 앞 문자 반환
str.back() – 가장 뒤 문자 반환
str.length(), .size() – 문자열 길이
str.resize(n) – n의 크기로 변환, 기존 길이보다 작으면 남는 부분 삭제, 크면 null로 채움
str.resize(n, ‘a’) – 채울때 ‘a’로 채움
str.empty() – 빈 문자열인지 확인
str.append(str2) – str2 문자열 이어 붙여줌 (+와 동일)
str.append(str2, n, m) – str2 문자열의 n index부터 m개의 문자 붙여줌
str.insert(n, str2) – n index에 str2 문자열 삽입
str.replace(n,k,str2) – n index부터 k개의 문자를 str2로 대체
str.clear() – 문자열 모두 지움
str.erase(n, m) – n index부터 m개의 문자열을 지움
str.find(str2) – str2가 포함되어있는지 확인, 찾으면 첫번째 index 반환
str.find(str2, n) – n index이후부터 find
str.substr(n) – n index부터 끝까지의 문자를 부분문자열로 반환
str.substr(n,k) – n index부터 k개의 문자열 부분문자열로 반환
str.compare(str2) – 문자열 비교, 같으면 0, str<str2 면 음수, str > str2 면 양수 반환
isdigit(c) – c가 숫자이면 true, 아니면 false
isalpha(c) – c가 영어이면 true, 아니면 false
toupper(c) – c를 대문자로 변환
tolower(c) – c를 대문자로 변환
stoi(str) – str을 int로 변경
stof(str) – str을 float로 변경
to_string(n) – n을 string으로 변경
☞ 실습 링크
https://github.com/YejeongKang/240429
GitHub - YejeongKang/240429
Contribute to YejeongKang/240429 development by creating an account on GitHub.
github.com
https://github.com/YejeongKang/240430
GitHub - YejeongKang/240430
Contribute to YejeongKang/240430 development by creating an account on GitHub.
github.com
'Smart Factory Bootcamp' 카테고리의 다른 글
[C++ 입문] 7. structure, class (0) | 2024.05.14 |
---|---|
[C++ 입문] 6. file separation, namespace (0) | 2024.05.09 |
[C++ 입문] 4. vector, execution time (0) | 2024.04.26 |
[C++ 입문] 3. pointer, dynamic array (0) | 2024.04.26 |
[C++ 입문] 2. loop, function, array (0) | 2024.04.24 |