2014-10-29 5 views
-1

C++에서 다음과 같은 유형의 목록을 어떻게 개발합니까?C++의 배열 및 목록

a. 목록의 크기는 컴파일 타임에 알려 집니까?

b. 목록의 크기는 런타임에 한 번 결정되지만 이후에 고정 됩니 까?

c. 목록의 크기는 런타임 중에 변경 가능해야하며 벡터를 사용할 수 없습니까?

+0

중요한 질문, 답변에 대한 가장 먼저 생각한 점은 무엇입니까? 필요할 경우 개선 할 수 있습니다. –

+0

숙제처럼 보입니다. 다음과 같은 것들을 살펴보십시오. A) 표준 배열 B) 객체 포인터 C) 연결된 목록 – marsh

+0

a의 경우 int intArray [5]와 같은 크기를 직접 입력 할 수 있습니다. b의 경우 사용자에게 크기를 입력 한 다음 메모리를 할당하도록 요청할 수 있습니다. C의 경우에는 잘 모르겠습니다. – muqsitnawaz

답변

0

a. The list’s size is known at compile time? 정상적인 정적 배열.

b. The list’s size is determined once at runtime but it is fixed thereafter? 동적 배열. 변수를 크기로 사용하여 초기화됩니다.

c. The list’s size must be changeable during runtime and you are not allowed to use vectors? 나는 arraylist 또는 링크 된 목록 또는 그 라인을 따라 무엇이라도 추측한다.

1

C++에서 다음과 같은 유형의 목록을 어떻게 개발합니까?

a. 목록의 크기는 컴파일 타임에 알려 집니까?

사용 std::array


B를. 목록의 크기는 런타임에 한 번 결정되지만 이후에 고정 됩니 까?

std::vector을 사용하십시오.


다. 목록의 크기는 런타임 중에 변경 가능해야하며 벡터를 사용할 수 없습니까?

사임하지만 사임 후 일정 기간 계약을 이행해야하는 경우에는 std::deque을 사용하십시오.

+0

왜 우리는 std :: vector가 필요합니까? 배열을 정기적으로 새로 만드는 것이 무엇이 문제입니까? – Daniel

+1

벡터의 크기가 C++에서 고정되도록 생각하지 않습니다. 요소를 벡터에 추가하면 자동으로 확장됩니다. 이 사건이 아닌가? – muqsitnawaz

+0

@ 대니얼 (Daniel) : 메모리 관리는 올바르게 진행하기가 어렵고, 특히 최종 할당 해제가 어렵습니다. 크기 조정을 위해. 'std :: vector'는 모든 것을 안전하고 투명한 방식으로 자동화합니다. 잘 테스트되고 안전하고 효율적인 추상화의 중요성 외에도 사용을 허용하지 않는 것은 사직할만한 충분한 이유입니다. 무능력자 나 작업을 방해하는 것은 좋지 않습니다. –