2013-04-14 2 views
1

제목이있는 앨범, 나왔던 연도 및 앨범의 노래가 있습니다.어떻게 많은 값을 갖는 연관 배열을 가질 수 있습니까

std::string alb_name[256]['title', 'year', 'songs']; 

하지만 난 노래 연관 배열은 최대 20 곡을 보유 할 :

은 내 배열은 다음과 같이 설정되어 있습니다. 쉬운 방법이 있나요? 나는 1 클래스 프로그래밍이고 그것을 할 수있는 방법을 알아낼 수 없습니다. 어떤 도움이 필요합니다.

+1

왜 자신을 20 명으로 제한합니까? – john

답변

0

:

map<string, Album> albums; 

Album album; 
album.title = "Acoustic Sketches"; 
album.year = "1996"; 
album.tracks.push_back("Metamorphosis"); 
album.tracks.push_back("Rivulets"); 
//.. etc 
albums[album.title] = album; 
+0

이것은 매우 유용하지만 오류가 발생합니다. " '벡터'는 유형을 지정하지 않습니다." – user1082764

+0

예가 완전하지 않습니다. 'vector'와'map'은 C++ 표준 라이브러리의 일부입니다. 사용중인 모든 문서에 있어야합니다. –

5

C++에는 연관 배열로 작동하는 std::map이라는 것이 있습니다.

#include <map> 
#include <string> 
#include <vector> 

struct AlbumData 
{ 
    int year; 
    std::vector<std::string> songs; 
}; 

std::map<std::string, AlbumData> albums; 

AlbumData d; 
d.year = 1966; 
d.songs.push_back("A Day in the Life"); 
d.songs.push_back("When I'm 64"); 
albums["Sgt Pepper's Lonely Hearts Club Band"] = d; 

struct 구조 데이터
+0

나는 이것을 조사 할 것이다, 나를 바른 방향으로 이끌어 주셔서 감사합니다! – user1082764

1

는 첫째, 데이터베이스를 사용하려면 :

struct Album { 
    string title; 
    string year; 
    vector<string> tracks; 
}; 

map 다른 값으로 값을 매핑 : At what point is it worth using a database?

두 개 이상의 연관 배열 또는 맵이 필요합니다. 이렇게하면 다른 필드를 기반으로 검색하고 정렬 할 수 있습니다. 예를 들어

:
제목 테이블

+----------+-------+ 
| ID_Title | Title | 
+----------+-------+ 

아티스트 테이블

+-----------+-------------+ 
| ID_Artist | Artist name | 
+-----------+-------------+ 

+-----------+----------+ 
| ID_Artist | ID_Title | 
+-----------+----------+ 
당신은 노래 테이블을 설정할 수

가 아티스트 나 제목으로 분류 할

노래 표 .

웹에서 "데이터베이스 표준 형식"을 검색하십시오.

관련 문제