일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 백준
- EOF
- 프레임워크와 라이브러리의 차이
- iOS14
- string 메소드
- UI한글변경
- 이분그래프
- correlation coefficient
- vscode
- 구조체와 클래스의 공통점 및 차이점
- 매크로
- string 함수
- k-eta
- 입/출력
- c++
- 장고란
- scanf
- 입출력 패턴
- 시간복잡도
- 엑셀
- 자료구조
- 표준 입출력
- getline
- 연결요소
- Django Nodejs 차이점
- Django란
- 알고리즘 공부방법
- Django의 편의성
- double ended queue
- 2557
- Today
- Total
목록알고리즘/문제해결을 위한 C++ 공부 (31)
Storage Gonie
# 벡터란 - Python의 list 같은 느낌, 길이를 변경할 수 있는 가변배열로 동적할당 동적제거가 가능. # 헤더파일 # include # 사용준비 # include using namespace std; int main() { vector vec; } # 벡터 생성방법 # include using namespace std; int main() { vector vec; // 비어있는 벡터 생성 vector vec(5); // 5개의 원소를 0으로 초기화 시켜 만듬 vector vec(5, 3); // 5개의 원소를 3으로 초기화 시켜 만듬 vector vec2(vec); // vec 을 복사하여 벡터 생성 } # 벡터에 값을 입력받는 방법 # include using namespace std; // ..
# Iterator find (InputIterator first, InputIterator last, const T& val) - val의 값이 어디의 위치에 존재하는지를 Iterator로 반환함.(val과 일치하는게 없을 시 마지막 end()를 반환) - #include 을 포함시켜주어야 함 # 예시 #include #include #include using namespace std; int main() { int a[] = {1, 2, 3, 4, 5}; vector myvector(a, a + 5); auto it = find(myvector.begin(), myvector.end(), 3); if (it == myvector.end()) // 존재하지 않는 경우 cout
# int cout (InputIterator first, InputIterator last, const T& val) - Iterable한 것(배열, 스트링 등)에서 값 val이 몇 개 존재하는지 개수를 반환함 - #include 을 포함시켜주어야 함 # 이 함수의 인자로 사용되는 값을 이해하기 위한 예시코드 - iterator(배열 혹은 스트링)에다가 begin, end를 붙여주면 주소값을 가리키는듯 하다. 여기에 + 혹은 -를 해주면 다음 혹은 이전 원소가 있는 주소를 가리키게됨. #include using namespace std; int main(void) { ios::sync_with_stdio(false); string s = "abc"; cout
# 구조체 정의 방법 - 구식 컴파일러 버전에서는 'struct' 앞에 'typedef'를 넣어줘야 한다.(신형의 경우 생략가능) - 구식 컴파일러 버전에서는 구조체 멤버변수를 선언할 때 초기화해줘야 한다.(신형의 경우 상관없음) struct Point2D{ int x; int y; }; struct Point2D{ int x; int y; void init(int x, int y) { this->x = x; this->y = y; } void printPoint2D() { cout
1. 예상과 다르게 줄바꿈 문자를 이전 입력으로부터 바로 받아서 그냥 넘어가버리는 경우 - getchar()를 껴 넣어줌으로써 해결가능. 2. scanf("%[^]\n", s); 이 방식을 웬만하면 사용하지 말자. 직관적이지 않은 flow가 보여진다. 3. {scanf, printf} {cin, cout} 을 섞어서 쓰지말고 하나만 써야한다. 안그러면 결과가 맞아도 틀리다고 나올 수 있다. 4. 배열의 크기를 선언할 때 문제에서 입력의 조건을 잘 확인하고 충분히 크게 줘야한다.
입력받기 # char 배열에 문자열 입력받기 char s[10]; cin >> s; 속성값 얻기 # char 배열의 문자열 길이 - strlen() char s[10] = "abc"; cout > s; a = atoi(s); // 입력받은 문자열을 정수형으로 변환 cout
참고 : http://yotop93.blogspot.com/2015/04/string.html C++에서 문자열을 다룰 수 있는 두 가지 방법 # C-스트링 - C언어에서 사용해오던 전통적인 문자열로, '\0'으로 끝나는 char타입의 배열을 취급하는 방법이다. char s[100]; scanf("%s", s); # string 클래스 - C++ 표준 라이브러리에서 제공하는 클래스로 문자열의 크기를 동적으로 변경 가능하며, Python의 문자열 방식과 비슷하다. string str = ""; getline(cin, str); // 문자열 입력받기 cout
# 띄어쓰기로 구분된 입력 각각을 저장하는 법(줄 바꿈 문자를 제외하고 입력받음) - scanf() - cin cin을 연속적으로 호출하면 입력받은 한 줄에서 공백을 구분자로 하여 다음 것을 계속해서 가져올 수 있다. #include using namespace std; int main(void) { char s1[15]; char s2[15]; scanf("%s %s", s1, s2); cout s2; cout
*scanf는 앞뒤 공백을 무시하므로 한줄 전체를 그대로 받는 데에는 적절치 못하다. 1. 평범한 케이스 int a, b; scanf("%d%d", &a, &b); // "4 5", "4 5", "4 \n 5 \n" 모두 인식이 가능하다. 2. 문자를 사용한 부분입력 무시 int a, b; scanf("%d,%d", &a, &b); // "4,5" 만 인식이 가능하며, ','는 구분자 역할만 한다. scanf("%d:%d", &a, &b); // "4:5" 만 인식이 가능하며, ':'는 구분자 역할만 한다. printf("%d %d", a, b); // 4 5 3. 별표를 사용한 입력 무시 int a, b; scanf("%*d %d", &a); // "3 5"를 입력하면 3은 무시되고 5가 a변수로 할당..
# cin, cout 을 이용하는 경우 #include using namespace std; int main(void) { // cin, cout 사용시 아래 줄을 포함시키면 scanf, printf 속도와 비슷하게 입출력을 할 수 있다. // 단, 이를 추가한 뒤에는 cin/scanf, cout,printf 를 혼용해서 사용하지 말자. ios_base::sync_with_stdio(false); int a = 0; int b = 0; cin >> a >> b; cout a; printf("%d\n", a); scanf("%d", &a); cout