Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| c:라이브러리_추가가_필요한_자료형 [2022/01/17 10:23] – jonghoon | c:라이브러리_추가가_필요한_자료형 [2023/09/05 15:46] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 10: | Line 10: | ||
| | deque | < | | deque | < | ||
| + | ===== string ===== | ||
| + | < | ||
| + | 한 예로 + 연산자로 서로 다른 문자열을 합칠 수 있다. | ||
| + | 포함되어 있는 함수는 매우 많으나 주로 사용하는 몇 가지만 설명한다. | ||
| + | |||
| + | ^ 함수명 ^ 함수 설명 ^ 예시 ^ | ||
| + | | to_string(x) | int나 double 같은 숫자형 자료를 string 자료형으로 변환하여 반환한다. | to_string(3) $\rightarrow$ " | ||
| + | | ::: | ::: | to_string(3.8) $\rightarrow$ " | ||
| + | | stoi(x) | string 자료형을 int형 정수로 변환하여 반환한다. | stoi(" | ||
| + | | ::: | ::: | stoi(" | ||
| + | | stod(x) | string 자료형을 double형 실수로 변환하여 반환한다. | stod(" | ||
| + | | ::: | ::: | stod(" | ||
| + | | string.substr(start, | ||
| + | | string.c_str() | string 자료형인 문자열을 const char형 포인터로 변환하여 반환한다. | " | ||
| + | |||
| + | substr의 경우 인자가 하나만 있으면 start위치부터 끝까지를 반환한다. | ||
| + | |||
| + | 다음은 각 함수를 사용하는 코드다. | ||
| + | |||
| + | < | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | using std::cout; | ||
| + | using std:: | ||
| + | using std:: | ||
| + | using std::stoi; | ||
| + | using std::stod; | ||
| + | |||
| + | int main() | ||
| + | { | ||
| + | cout.precision(17); | ||
| + | | ||
| + | string str1 = " | ||
| + | | ||
| + | int x = stoi(str1);// | ||
| + | double xd = stod(str1); // xd = 1234.56789 | ||
| + | | ||
| + | string i_to_s = to_string(x); | ||
| + | string d_to_s = to_string(xd); | ||
| + | | ||
| + | string sub1 = str1.substr(5);// | ||
| + | string sub2 = str1.substr(5, | ||
| + | string sub3 = sub1 + sub2;// sub3 = " | ||
| + | | ||
| + | const char *ch = str1.c_str(); | ||
| + | | ||
| + | cout << "str: " << str1 << "\t type: " << typeid(str1).name() << " | ||
| + | cout << "str to int: " << x << "\t type: " << typeid(x).name() << " | ||
| + | cout << "str to double: " << xd << "\t type: " << typeid(xd).name() << " | ||
| + | cout << " | ||
| + | cout << " | ||
| + | cout << " | ||
| + | cout << "str to char array: " << ch << "\t type: " << typeid(ch).name() << " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | 실행결과는 다음과 같다. | ||
| + | |||
| + | str: 1234.56789 $\quad$ type: std::_ _cxx11:: | ||
| + | str to int: 1234 $\quad$ type: int\\ | ||
| + | str to double: 1234.56789 $\quad$ type: double\\ | ||
| + | substr one parameter: 56789 $\quad$ type: std::_ _cxx11:: | ||
| + | substr two parameter: 567 $\quad$ type: std::_ _cxx11:: | ||
| + | string + operation: 56789789 $\quad$ type: std::_ _cxx11:: | ||
| + | str to char array: 1234.56789 $\quad$ type: char const*\\ | ||
| + | |||
| + | g++의 경우 typeid를 나름대로 define하여 쓰고 있어 그냥 실행하면 int는 i로 double은 d로 const char* 는 PKc로 나타난다. | ||
| + | 위와 같이 정확한 명칭으로 나타나게 하기 위해서는 | ||
| + | < | ||
| + | ./ | ||
| + | </ | ||
| + | 형식으로 실행을 해야한다. | ||
| + | |||
| + | ===== vector ===== | ||
| + | vector는 다루기 쉬운 동적배열 자료형이다. | ||
| + | |||
| + | vector에서 지원하는 함수는 다음과 같다. | ||
| + | ^ 함수명 ^ 함수 설명 ^ | ||
| + | | vector.begin() | vector의 첫 요소의 주소를 가리키는 포인터를 반환한다. | | ||
| + | | vector.end() | vector의 마지막요소 +1 번째 요소(null값)의 주소를 가리키는 포인터를 반환한다. | | ||
| + | | vector.capacity() | vector의 크기를 반환한다. | | ||
| + | | vector.size() | vector가 실제로 사용하고 있는 크기를 반환한다. | | ||
| + | | vector.at(x) | vector의 x번째 요소를 반환한다. 잘못된 위치를 넣으면 컴파일 타임에서 에러가 발생한다. | | ||
| + | | vector.push_back(x) | vector의 마지막 요소 다음에 x를 추가한다. | | ||