반응형

c++ 25

sstream을 사용하여 문자열 split 하기 (C++)

개요 C++을 사용하여 문자열을 입력받았을 때, 구분자로 나눠주기 밑의 코드는 구분자가 ' '(공백)일 때의 예시이다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include #include #include #include using namespace std; int main() { string str= ""; istringstream ss(str); string stringBuffer; vector v; v.clear(); //구분자가 , 이라면 getline(ss, stringBuffer, ',')쓰면됨 while (getline(ss, stringBuffer, ' ')) { v.push_back(stringBuffer);..

언어/C++ 2021.11.21

[C++] 부동 소수점

개요 C++에서 소수를 저장할 때 부동소수점 자료형을 이용한다. 상세 1/3 = 0.3333...과 같은 경우 코드 내에서 무한한 소수점을 표현할 수 없으므로 특정 자리까지만 저장하고 나머지는 손실된다. std::cout의 경우 기본 정밀도는 6으로, 소수 아래 6자리까지는 유효하고, 그 아래부터는 오차가 발생한다. cout.precision(n)을 사용하게 되면 n자리까지 cout이 표시하게 된다. (cout

언어/C++ 2021.11.12

[C++ STL] vector 선언 및 초기화 (1차원, 2차원)

개요 C++의 STL 중 하나로, 한 번에 한 타입만 저장 가능합니다. 이번 게시글에서는 vector의 선언과 초기화에 대해 다뤄보겠습니다. 상세 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include using namespace std; int n, m; // 기본적인 1차원 vector 선언 vector v; // 크기가 5인 1차원 vector 선언 vector v(5); // 크기가 5이고 초기값이 1인 1차원 vector 선언 vector v(5, 1); // 기본적인 2차원 vector 선언 vector v; // n x n 2차원 vector vector v(n, vector(n)); // 초기값이 1인 n x m 2차원 vector vector v(..

언어/C++ 2021.10.03

함수 오버로딩 (Function overloading)

개요 함수 오버로딩(Function overlaoding) : C#, C++, 자바 등에서의 함수의 특징. 같은 함수 이름을 가지고 있으나 매개변수, 리턴타입 등의 특징은 다른 여러개의 서브프로그램 생성을 가능하게 한다. 조건 다음 중 하나를 만족해야 한다. 1. 매개변수의 자료형이 달라야 한다. 2. 매개변수의 개수가 달라야 한다. 주의점 1. 반환타입은 오버로딩에서 고려되지 않는다. 2. 모호한 함수가 있을 경우 컴파일 에러가 발생한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include using namespace std; void print(unsigned int value) { cout

언어 2021.09.26

명백한 호출의 괄호 앞에 오는 식에는 함수 (포인터) 형식이 있어야 합니다 오류

명백한 호출의 괄호 앞에 오는 식에는 함수 (포인터) 형식이 있어야 합니다 vector를 사용하다가 떴던 오류. 구글링 해보니 내장 함수의 이름과 변수의 이름이 똑같아서라는데... v라는 내장 함수가 있을 리는 없고 알고 보니 v[0].first자체가 변수기 때문에 괄호를 붙여주지 말고 사용해야 했다. 괄호를 제거해주면 잘 출력된다. 내장함수와 이름이 겹치는 변수를 사용할 때 뜨는 오류와 동일하다. 위의 경우에는 algorithm.h 안에 max라는 내장 함수가 있어 max라는 변수를 사용할 수 없다 int max를 _max 등으로 바꾸어주면 된다.

언어/C++ 2021.09.18
반응형