|
김진영 님이 쓰신 글 :
: 안녕하세요?
: 전 소켓프로그래밍을 공부하던중 STL에 관심을 가지게 되었습니다.
: 소켓API는 C의 문자배열로 데이터를 주고 받아야 합니다.
: 그래서 STL로 자료를 처리한고 C배열로 바꿔야 합니다.
: 그런데 패킷을 소켓으로 보낼때 패킷의 크기라던가 하는 정보도 같이 보내야 하는데 이런 정보는 정수로 되어 있습니다.
: 그래서 포인터를 이용해서 정수를 문자배열로 저장을 했습니다.
:
: int pnt = 0;
: char buff[1024];
: *((int *)buff) = 10;
: pnt += sizeof(int);
:
: 이런식으로요.
: 그 다음 STL의 컴포넌트를 배열로 복사했습니다.
:
: string stlBuff;
: copy(stlBuff.begin(), stlBuff.end(), &buff[pnt]);
:
: 이것을 send(), recv()로 주고 받았습니다.
: 그던데 이것을 정수와 string으로 분리하지 않고 바로 string으로 저장해 파싱하는 함수로 보냈습니다.
: (다른 쓰레드에 있는 함수입니다. 보낼때는 deque<string>으로 만든 큐를 이용합니다. 네트웍 수신딜레이 좀 줄여보기 위한 노력입니다.)
:
: 그런데 이부분에서 제대로 데이터가 가지 않습니다.
: 결국 받은 즉시 정수와 string으로 분리해 처리하면 괜찮다는 것을 알았습니다.
: 말이 길어졌습니다.
: 결국 제가 알고 싶은것은 "STL의 string에 포인터를 이용해 정수를 저장할수 없는가?"입니다.
: 그리고 "그게 불가능하다면 STL자료구조중 문자와 정수를 함께 저장가능하고 문자배열로 만들수 있는 자료구조가 있는가?" 입니다.
STL에는 그런건 없습니다.
: 지금은 정수와 string을 포함하는 클래스를 만들어 STL로 처리하고 있습니다.
맞습니다. 따로 구조체나 클래스를 정의해서 사용해야 합니다.
: 하지만 복잡해져서 STL로 간편하게 할 수 있는 방법은 없는지 궁금합니다.
: 다른 사람든은 아무 문제없이 해결하는 것을 저만 처리하지 못하는지 이런 문제는 찾기가 쉽지 않네요.
:
:
: 2번째 질문입니다.
: "매개변수를 가지는 생성자가 있는 클래스의 배열을 힙에 어떻게 만드는가?" 입니다.
:
: 매개변수를 가지는 생성자가 있는 클래스를 힙에 만들면 이렇게 되겠죠?
: class myClass
: {
: public:
: myClass(int num);
: int size;
: }
: myClass::myClass(int num)
: {
: size = num;
: }
:
: void main()
: {
: myClass *newClass;
: newClass = new myClass(10);
: }
:
: 그리고 파라미터가 없는 생성자를 가진 클래스의 배열을 힙에 할당하려면 이렇게 하면 되겠죠?
: void main()
: {
: myClass *newClass;
: newClass = new myClass[100];
: }
:
: 그런데 처음에 보인 그 클래스의 배열을 힙에 할당하려면 어떻게 해야 할까 하는것 입니다.
: 별것 아닌것 같은데 잘 안됩니다.
: 이런 경우는 어떻게 해야 할까요?
:
: 혹시 아시분 계시면 답변 부탁드립니다.
: 긴 글 보아 주셔서 감사드립니다.
: 그럼 이만...
:
:
:
|