C ++ 언어는 C ++ 배열은 C 언어 스타일의 전통적인 배열을 사용할 수 있도록, C 언어와 호환됩니다. 그러나 많은 시간에 C 언어 형식의 배열은 사용하기 매우 쉬운 일이 아니다. C ++에서 대신 벡터로 이용 될 수있다.
이 문서 벡터, 문자열과 문자 배열 사이의 관계 만 고려한다.
당신이 문자열을 사용하는 경우, 문자열을 사용하는 것이 좋습니다,하지만 당신은 단지 배열을 고려한다면, 당신은 같은 문자 배열과 문자열 대신 벡터를 사용한다, 결국 동일하지 않습니다.
벡터에 교환 문자 배열 :
1 벡터로 배열
float arrHeight[] = { 1.68,1.72,1.83,2.05,2.35,1.78,2.1,1.96 };
vector<float> vecHeight(arrHeight, arrHeight+sizeof(arrHeight)/sizeof(float));
2 벡터 어레이 전사
벡터 데이터가 연속적인 내부 저장 공간에 저장되어 있기 때문에, 벡터 형질 어레이 사실은 첫 번째 데이터 및 어드레스 데이터의 벡터 길이를 얻기 위해 필요하다. 유일한 매개 변수 전달이 아무런 조작을하지 않으면, 주소를 직접 전달 될 수있는 경우 데이터를 복사 할 경우, 당신은 메모리 복사 기능 "방어 적이기"빌릴 수 있습니다. 예를 들면 :
float *buffer = new float[sizeof(arrHeight)];
if (!vecHeight.empty())
{
memcpy(buffer, &vecHeight[0], vecHeight.size()*sizeof(float));
}
3. 응용 프로그램 추천
1 인 구현 동적 배열뿐만 벡터 : 메모리 블록, 충분한 사용감 메모리의 큰 블록의 재분배가 사전 - 할당하고 데이터를 복사 할 신규 블록 메모리에 자동 종래.
구현은 저장 될 데이터의 길이를 알고있는 경우, 따라서 효율성을 위해, 충분한 메모리 크기 조정 기능을 열어 후속 메모리 복사를 방지하기 위해 사용될 수있다.