배열 (C++)
배열에는 같은 개체의 컬렉션입니다.가장 간단한 배열에서 다음과 같은 순서로 선언 될 수 있습니다 벡터입니다.
decl-specifier identifier [ constant-expression ]
decl-specifier identifier []
decl-specifier identifer [][ constant-expression] . . .
decl-specifier identifier [ constant-expression ]
[ constant-expression ] . . .
1.선언 지정자:
선택적 저장소 클래스 지정 자가 있습니다.
선택적인 const 또는 volatile 지정자입니다.
배열 요소의 형식 이름입니다.
2.선언 자:
식별자입니다.
대괄호로 묶인 정수 계열 형식의 상수 식 . 상수 식 여러 차원의 추가 괄호를 사용 하 여 선언 하는 경우 첫 번째 대괄호 세트를 생략할 수 있습니다.
선택적 추가 대괄호 상수 식을 포함 합니다.
3.선택적 이니셜라이저입니다.참조 하십시오 이니셜라이저.
배열에 있는 요소의 수가 상수 식으로 지정 됩니다.0 번째 요소 배열의 첫째 요소는 고 마지막 요소는 (n-1) 요소를 위치 n 배열을 포함할 수 있는 요소의 수입니다.해당 상수 식 의 정수 계열 형식 이어야 하며 0 보다 커야 합니다.배열의 마지막 필드를 경우에 크기가 0 인 배열이 올바르지는 struct 또는 union 및 Microsoft 확장 (/Ze)을 사용 하면.
다음 예제에서는 런타임에 배열 정의 하는 방법을 보여 줍니다.
// arrays.cpp
// compile with: /EHsc
#include <iostream>
int main() {
using namespace std;
int size = 3, i = 0;
int* myarr = new int[size];
for (i = 0 ; i < size ; i++)
myarr[i] = 10;
for (i = 0 ; i < size ; i++)
printf_s("myarr[%d] = %d\n", i, myarr[i]);
delete [] myarr;
}
배열은 파생된 형식이 며 다른 파생 또는 기본 형식 함수에 대 한 참조를 제외 하 고 따라서 생성할 수 및 void.
다른 배열에서 만든 배열은 다차원 배열입니다.이러한 다차원 배열은 대괄호로 묶인된 여러 상수 식을 순서 대로 배치 하 여 지정 됩니다.예를 들어,이 선언을 참조 하십시오.
int i2[5][7];
배열 형식 지정 int, 개념적으로 정렬 7 열과 다섯 개의 행의 2 차원 행렬에는 다음 그림에 나와 있는 것 처럼:
다차원 배열 개념 설계
이니셜라이저 목록을 multidimensioned 배열 선언에서 (에 설명 된 대로 이니셜라이저), 첫 번째 차원에 대 한 경계를 지정 하는 상수 식에서 생략할 수 있습니다.예를 들면 다음과 같습니다.
// arrays2.cpp
// compile with: /c
const int cMarkets = 4;
// Declare a float that represents the transportation costs.
double TransportCosts[][cMarkets] = {
{ 32.19, 47.29, 31.99, 19.11 },
{ 11.29, 22.49, 33.47, 17.29 },
{ 41.97, 22.09, 9.76, 22.55 }
};
앞의 선언 네 개의 열을 기준으로 행을 세 개 배열을 정의 합니다.공장 행을 나타내고, 시장에는 공장 출하의 열을 나타냅니다.값은 공장에서 운송비를 시장에 있습니다.에 채웁니다 이니셜라이저를 검토 하 여 컴파일러를, 배열의 첫 번째 차원 남아 있습니다.
이 단원의 항목은 다음과 같습니다.
예제
다차원 배열의 첫 번째 차원에 대 한 범위 지정 생략 기법 함수 선언에는 다음과 같이 사용할 수도 있습니다.
// multidimensional_arrays.cpp
// compile with: /EHsc
// arguments: 3
#include <limits> // Includes DBL_MAX
#include <iostream>
const int cMkts = 4, cFacts = 2;
// Declare a float that represents the transportation costs
double TransportCosts[][cMkts] = {
{ 32.19, 47.29, 31.99, 19.11 },
{ 11.29, 22.49, 33.47, 17.29 },
{ 41.97, 22.09, 9.76, 22.55 }
};
// Calculate size of unspecified dimension
const int cFactories = sizeof TransportCosts /
sizeof( double[cMkts] );
double FindMinToMkt( int Mkt, double myTransportCosts[][cMkts], int mycFacts);
using namespace std;
int main( int argc, char *argv[] ) {
double MinCost;
if (argv[1] == 0) {
cout << "You must specify the number of markets." << endl;
exit(0);
}
MinCost = FindMinToMkt( *argv[1] - '0', TransportCosts, cFacts);
cout << "The minimum cost to Market " << argv[1] << " is: "
<< MinCost << "\n";
}
double FindMinToMkt(int Mkt, double myTransportCosts[][cMkts], int mycFacts) {
double MinCost = DBL_MAX;
for( int i = 0; i < cFacts; ++i )
MinCost = (MinCost < TransportCosts[i][Mkt]) ?
MinCost : TransportCosts[i][Mkt];
return MinCost;
}
설명
함수가 FindMinToMkt 새 공장을 추가 하기만 하면 재컴파일을 코드 변경 사항을 요구 하지 않도록 작성 됩니다.