2017-03-16 2 views
1

현재 배열 프로그램을 만들고 있는데 색인 번호를 다시 사용할 수 없도록 만들 수있는 방법을 알고 싶습니다. 예를 들어 인덱스 [3]에 값을 넣었다면 색인 [3]을 사용하고 그 값을 바꿀 수는 없지만 액세스 할 수는 있습니다.교체 색인을 사용할 수 없도록 만드는 방법

+0

다소 혼란 스럽지만 예제를 제공해 줄 수 있습니까? 일단 배열의 위치 (예 : index [3])에 값을 설정하면 액세스 할 수는 있지만 수정 할 수는 없습니까? – aUserHimself

+0

은 '다시 사용할 수 없습니다'란 이미 사용하고있는 색인을 감지하여 프로그램이 다른 색인을 선택하게하려는 것입니까? – Harmlezz

+0

집합에서 사용 된 색인을 유지할 수 있습니다. 그런 다음 사용자가 이미 해당 세트에있는 색인을 할당하려고하면 원하는대로 처리 할 수 ​​있습니다. 가능한 모든 값을 저장해야하는 경우 – chatton

답변

0

전체 배열을 정의되지 않은 값으로 초기화 할 수 있습니다. -1. 그 인덱스에 값을 넣기 전에, -1인지 확인한 다음, 그 밖에 넣지 않습니다. 그리고 가능한 모든 값을 배열에 저장해야하는 경우이를 해결할 수있는 유일한 방법은 다른 부울 배열을 선언하는 것입니다. 배열에 인덱스 i에 값을 넣으면 boolean_array [i] = true로 설정하고 boolean_array [i]가 false인지 확인하기 전에 값을 넣습니다. 사실이면 색인이 이미 사용되었습니다.

+0

이 작동하지 않습니다. – Harmlezz

+0

답변을 편집했습니다. – Sakalya

0

아니, 할 수있는 일은 인덱스를 "최종"으로 설정하는 것입니다.하지만 그렇게 할 수는 없습니다. 최종 배열 전체 만 설정할 수는 있지만 원하는 제한이 부여되지는 않습니다.

원하는 경우 래퍼를 사용해야하며 배열을 직접 사용하지 않아야합니다. 예를 들어

,

myArrayWraper.add("toto",3) 

당신은 배열을 포함하는 클래스 MyArrayWraper을 만들고 인덱스가 이미 사용 여부를 확인하는 방법 add를 구현한다.

관련 문제