C++
-
구조체 vector, sortC++ 2021. 8. 28. 13:47
struct score { string name; int kor, eng; }; bool cmp(score a, score b) { // kor 값이 같을 경우 eng 값이 커지는 순서로 정렬 if (a.kor == b.kor) return a.eng b.kor; } int main() { int n; cin >> n; vector v(n); for (i = 0; i > v[i].name >> v[i].kor >> v[i].eng; } sort(v.begin(), v.end(), cmp); } pair를 사용했을 때보다 구조체를 사용했을 때 시간이 쬐끔 더 오래 걸린다. C++ so..
-
입출력 조작자 (Manipulator)C++ 2021. 7. 11. 02:44
입출력 조작자 ≠ 포맷 함수 (width, fill, precision, …) cin, cout 등으로 입출력 할 때 사용 매개변수 없는 조작자 : endl, hex, dec, showbase, showpos, showpoint 등 매개변수 있는 조작자 → iomanip 필요 : setw, setfill, setprecision, setbase 등 hex 사용해서 16진수로 입력 받아 10진수로 변환하기 #include using namespace std; int main() { int input; cin >> hex >> input; cout
-
pair, vectorC++ 2021. 7. 6. 03:22
pair 타입이 다른 두 개의 데이터 하나로 묶어서 처리할 때 utility, algorithm, vector 등의 헤더파일로 include 가능 #include #include #include using namespace std; int main() { // pair 생성 pair p = make_pair(1, 2.34); // first, second로 접근 가능 cout vp[i].second; } // push_back으로 추가하기 - vector는 가변 크기를 가지므로 뒤에 추가로 붙을 수 있음 vp.push_back(make_pair(12, 3.45)); // 오름차순 정렬 sort(vp.begin(), vp.end()); // 값 출력 for (int i = 0; i < 6; i++) { c..
-
cin.ignore() - cin, getline 동시에 사용할 때C++ 2021. 7. 6. 03:20
위에서 cin으로 정수 등 입력 받고 나서 getline으로 한 줄 string 입력 받을 때 바로 개행문자가 들어가버려서 입력 불가한 경우 cin.ignore() 사용해서 버퍼 비워주기 #include #include using namespace std; int main() { int n; cin >> n; // 정수형 변수 n에는 입력한 숫자만 저장되고, \n은 버퍼에 그대로 남음 string s; getline(cin, s); // 새로 입력하기도 전에 위에서 입력하고 남은 \n이 들어와버림 cin >> n; // cin.ignore()를 통해 입력 버퍼를 비우면 해결 가능 cin.ignore(); getline(cin, s); }
-
stackC++ 2021. 6. 1. 23:23
Stack (STL) LIFO (Last In First Out) : 마지막에 들어간 데이터가 가장 먼저 나옴 stack 헤더파일 불러오기 #include 빈 stack 생성 stack name; e.g. stack s; 데이터 들어있는 stack 생성 stack s({ 1,2,3 }); size() - stack 내 원소 수 반환 n = s.size(); top() - 맨 위에 있는 원소 반환 n += s.top(); pop() - 맨 위에 있는 원소 삭제 s.pop(); push(x) - stack의 맨 위에 x 추가 s.push(1); s.push(x); empty() - stack이 비어있으면 true, 아니면 false 반환 while (!s.empty()) { ... }