2017-04-03 10 views
1

여기 다른 많은 사람들과 같은 이야기입니다. C++에 매우 익숙하며 일반적으로 과제에 중점을두고 있습니다.요소의 다른 유형 및 클래스를 사용하는 2 차원 배열

DVD 상점을위한 클래스를 만들고 구현해야합니다. 또한 DVD에 관한 정보를 저장할 배열을 만들어야합니다. 배열의 요소는 반드시 클래스 형이어야합니다 (작성해야만합니다)

배열은 int, string 유형의 요소를 포함해야합니다. 내가 말할 수있는 한 (많은 인터넷 검색) 이것은 불가능합니다. 클래스를 사용하여 어떻게 든 가능할 것이라고 생각하지만 주위를 둘러 볼 방법이 없습니다.

도와주세요.

감사

레온 BTW

+1

다른 사람들의로드와 동일한 응답 : 구조의 2 차원 배열 (벡터)을 사용하십시오. 귀하의 DVD를 항목을 structre에 넣으십시오. –

+0

각 요소가 클래스의 (인스턴스) 인 배열을 만들어야한다고 말합니다. 수업을 만드는 방법을 알고 있습니까? 그리고 그것을 유형으로 어떻게 사용할 수 있습니까? 여러분은'int'와 같은 타입의 배열을 만드는 법을 알고 있습니까? 그리고 예를 들어 "2d"배열을 만드는 방법을 알고 있습니다. 'int'? 그렇다면 당신은 당신이 알고 싶은 모든 것을 정말로 알고 있습니다, 당신의 지식을 결합하십시오. 솔직히 왜 "2 차원 배열"을 원하는지 모르겠다. 'DVD' 클래스의 간단한 배열만으로 충분합니다. –

+0

배열에는 int 및 string 유형의 요소가 포함되지 않습니다. 그것은'class DVD' 타입의 요소를 포함 할 것이고'DVD' 클래스는 ints와 strngs를 포함 할 것입니다. –

답변

1

, 당신은 그래서는 DVD의 저장 항목에게 기록을 부르 자, 원시적 데이터베이스에 노력하고 있습니다. 아이디어는 구체적인 사항이 필요할 때까지 가능한 한 포괄적으로 처리하는 것입니다.

는 DVD 저장 기록 :

std::vector<Record> database; 

당신은없이 검색 속도를하는 데 도움 인덱스 테이블을 만들 수 있습니다 :

이제
struct Record 
{ 
    std::string title; 
    std::string artist; 
    std::string genre; 
    double price; 
}; 

가 모든 레코드를 저장하기위한 데이터베이스를 만들 매번 데이터베이스를 사용해야합니다.

std::map<std::string /* Title */, unsigned int /* Index into database */> Index_By_Title; 
std::map<std::string, unsigned int> Index_By_Artist; 

는 벡터에 대한 인덱스를 사용하여 행을 액세스하기 때문에 이것은 2D 용기가되고, 다음의 부재 이름을 사용하여 컬럼을 액세스 할 수있다.