Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[1759] Re:[만해] 자료형에 대한 질문
김백일 [cedar] 1504 읽음    2002-12-30 01:11
만해 님이 쓰신 글 :
: 안녕하세요 만해입니다.
: Url_Id   Duration_Time Duration_Count
: 1.0    1.0         2
: 1.0    10.0         1
: 1.0    17.0         1
: 1.0    343.0         1
: 2.0    17.0         2
: 2.0    51.0         1
: 2.0    59.0         1
: 3.0    0.0         40
: 3.0    1.0         105
: ...
: DataBase에 이런 형태로 자료가 저장 되어 있고요

Url_Id 가 위에는 실수 형태로 표기 되어 있는데,
물론 실제로는 정수겠지요?

: 이런 자료를 vector로 받아 들여서 처리 할려고 하느데요

DB에 있는 데이터를 처리하는 데,
굳이 메모리에 전부 로딩해서 다룰 필요가 있을까요?

적당한 SQL 쿼리 문와 DB 액세스용 API를 잘 이용해서 처리하는 것이 좋습니다.
C++빌더의 DB 컴포넌트와 API는 정말 편리합니다.

: Uri_Id 하나당 여러개의 자료가 존재 하는 형태인데요
:
: 이걸 어떻게 정의 해야 하는지 감이 안 잡히네요
:
: 예를 들면
:
: Vector<int> D1; -> 1차원
: Vector< Vector<int> > D2; -> 2차원 배열
: Vector< Vector< Vector < int > > > D3; -> 3차원 배열
:
: 이렇게 되는데
:
: 제가 원하는 형태는 1차원 배열의 한 자료값이 2차원 배열 형태로 된거라서
:
: -> Url_Id[1][0].Duration_Time = 1.0
:    Url_Id[1][0].Duration_Count = 2
:    Url_Id[1][1].Duration_Time = 10.0
:    Url_Id[1][1].Duration_Count = 1
:
: 이런식으로 조합 가능한 자료형을 어떻게 정의 해야 하는지
:
: 고수님들의 조언 부탁 드립니다.

굳이 메모리에 로드해야 해서 처리해야 한다면 다음과 같이 해보세요.

Url_Id가 중복해서 존재하고, 이 값 자체는 변하지 않는 경우라면,
multimap이나 hash_multimap을 쓰면 됩니다. (속도는 후자가 빠릅니다.)
multimap이 map과 다른 점은 키값이 중복될 수 있다는 점입니다.
(그래서 operator[]를 지원하지 않죠.)

다음과 같은 구조체(클래스)를 정의하신 후,

struct url_duration {
  float duration_time;
  int duration_count;
  url_duration(float time, int count) : duration_time(time), duration_count(count) {};
};

multimap을 정의합니다.

typedef multimap<url_duration> url_duration_mmap;
url_duration_mmap mm_urls;

데이터를 삽입할 때는 다음과 같이 하면 됩니다.

mm_urls.insert(url_duration_mmap::value_type(1, url_duration(1.0, 2)));
mm_urls.insert(url_duration_mmap::value_type(1, url_duration(10.0, 1)));
....

데이터를 검색하려면 equal_range 등의 멤버함수를 쓰면 됩니다.
( http://www.borlandforum.com/impboard/impboard.dll?action=read&db=cpp_tip&no=25 참고 )




+ -

관련 글 리스트
1758 [만해] 자료형에 대한 질문 만해 1288 2002/12/29
1759     Re:[만해] 자료형에 대한 질문 김백일 1504 2002/12/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.