STL: vector file writing

STL에서 조금 애매한 게 이것을 어떻게 pointer 개념으로 바라볼 것이냐 하는 것이다. File writing도 마찬가지 문제다.

내용물을 파일로 기록하고 싶은데, 특히 binary 형태로 기록하는 것이 용량도 작고 편하니까 그렇게 하고 싶은데, 이게 일반적인 pointer와 다르니 어떻게 해야하느냐 이거다.

그런데 어딜 찾아봐도 마땅한 해답은 없다.

단순히 다음과 같이 생각할 수 있다는 것 뿐이다.

벡터 혹은 리스트를 a로 선언했다면:

STL로 선언된 리스트나 벡터의 메모리 포인터: &a[0]
메모리 크기: a.size() * sizeof(<T>)

쉽게 생각해서 일반적인 pointer를 다루는 것과 유사하지만 boundary 문제, assignment 등등을 고려해서 여러 가지 보호장치가 되어있는 것 뿐이다. 간단한 것을 선호한다면 포인터를 쓰는 것이 편리하다. 속도면에 있어서는 요새 컴파일러가 너무 좋기 때문에 큰 차이가 없다. 물론 STL을 잘 사용했을 때 그러하다는 것이다. 이해가 잘 되지 않아 어렵게 돌아 돌아 가도록 코딩한다면 속도는 느려질 수 있다.