c++ / string c++ 개념

c와 혼동되는 개념이라 따로 정리하였다.

String.

string은 일련의 문자를 나타내는 객체입니다.

표준 문자열 클래스는 byte의 표준 컨테이너와 유사한 인터페이스를 사용하지만 특이점으론 single byte 문자로 작동한다.
(컨테이너란 내용물, 그릇이라고 생각하면 될것 같다. = 표준 컨테이너란 문자열에 필요한 내용물들이 들어있는 그릇)
이를 위해 여러가지 기능이 있는데 그 기능들은 다음과 같다.

Member types

member typedefinition
value_typechar
traits_typechar_traits<char>
allocator_typeallocator<char>
referencechar&
const_referenceconst char&
pointerchar*
const_pointerconst char*
iteratorrandom access iterator to char (convertible to const_iterator)
const_iteratorrandom access iterator to const char
reverse_iteratorreverse_iterator<iterator>
const_reverse_iteratorreverse_iterator<const_iterator>
difference_typeptrdiff_t
size_typesize_t

파이썬에서 배운 constructor와 destructor 개념도 있는데 추후에 추가할 기회가 있으면 추가할예정.

c++ 쿼드트리 뒤집기 문제에서 iterator관련 개념이 나왔는데 iterator 멤버 함수는 다음과같다.
Iterators:

앞에 c가 붙은 함수와 아닌 함수는 각각 c++ 11과 3버전에서 사용하는 함수들이다.


iterator 예제.
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
32
33
34
#include <iostream>
#include <vector>
using namespace std;
 
 
int main(){
 
    vector<int> v;
 
    v.push_back(10);
    v.push_back(20);
    v.push_back(30); 
    v.push_back(40);
    v.push_back(50);
 
    vector<int>::iterator iter=v.begin();  // 벡터 반복자 시작지점
 
    cout << iter[3<< endl;  // 임의접근
 
    iter += 2;  // += 연산
    cout << *iter << endl;
    cout << endl;
 
 
    // 반복
    for (iter = v.begin(); iter != v.end(); ++iter){
        cout << *iter << endl;
    }
 
    return 0;
}
 
 
출처: http://hyeonstorage.tistory.com/318 [개발이 하고 싶어요]
cs

결과 :

40

30


10

20

30

40

50


-v.begin() : 컨테이너의 시작 원소를 가리키는 반복자를 반환.
-v.end() : 컨테이너의 끝 표시 반복자를 반환.
-*iter : iter가 가리키는 원소(객체)를 반환
-iter[3] : iter+3번째 원소(객체)를 반환

반복자를 반환 하는것과 원소를 반환하는 것을 잘 체크해둘 것.




<그 밖의 멤버 함수> -- 추가 예정
Capacity:

Element access:

Modifiers:

String operations:

Member constants


Non-member function overloads



덧글

댓글 입력 영역