배열(1차원 2차원)에서 요소를 제거하는 방법은 무엇입니까? - 페이지 9

 
물론 비용과 지출에 대해 점수를 매길 수 있고 #define 에서 함수를 호출 하기 전에 새로 생성된 1차원 배열로 모든 차원의 배열을 다시 작성할 수 있습니다(그리고 다시 작성). 그러나 비용은 비참할 것입니다.
 
Alexey Viktorov :

도움이 되지 않는 이유는 무엇입니까?

...

오버로드는 배열의 차원 수나 차원 크기에서 작동하지 않기 때문입니다. 그리고 자동으로 결정될 수 있는 함수에 매개변수를 전달하는 것은 그다지 현명한 결정이 아닙니다.

 
Dmitry Fedoseev :

오버로드는 배열의 차원 수나 차원 크기에서 작동하지 않기 때문입니다. 그리고 자동으로 결정될 수 있는 함수에 매개변수를 전달하는 것은 그다지 현명한 결정이 아닙니다.

예, 나는 이것이 공허한 집안일이라는 것을 이미 이해했습니다.

 
일반적으로 이 주제는 주의할 가치가 있지만 나에게는 매우 광범위하고 복잡하며 다년간의 경험을 통해 알게 되었습니다.
 
Seric29 :
일반적으로 이 주제는 주의할 가치가 있지만 나에게는 매우 광범위하고 복잡하며 다년간의 경험을 통해 알게 되었습니다.

너무 자세히 설명하지 마세요. 그들은 모든 것을 너무 일반적으로 만들고 싶어하지만 그것 없이도 잘 살 수 있습니다.

 
사실 지점의 첫 번째 답변에는 만능 레시피가 나와 있었다. 전원을 켜고 직접 테스트하면 되는 건데, 다 씹고 입에 넣을 순 없잖아요?
 
Ilya Malev :
사실 지점의 첫 번째 답변에는 만능 레시피가 나와 있었다. 전원을 켜고 직접 테스트하면 되는 건데, 다 씹고 입에 넣을 순 없잖아요?

Ilya, 당신은 정말로 주제를 심각한 것으로 취급합니까? 놀고 자신을 약간 측정하는 것은 쉽습니다 ... 당신은 효과적인 대답을했습니다. 모든 것이 차원에 관계없이 1 차원 배열에 있고 그 반대입니다. 내 대답은 당신과 일치하며 본질을 변경하지 않는 작은 기술적 세부 사항 만 있습니다. 정의하고 비참한 비용에 대해 이해하지 못했습니다.

 
Алексей Тарабанов :

Ilya, 당신은 정말로 그 주제를 심각한 것으로 취급합니까? 놀고 자신을 약간 측정하는 것은 쉽습니다 ... 당신은 효과적인 대답을했습니다. 모든 것이 차원에 관계없이 1 차원 배열에 있고 그 반대입니다. 내 대답은 당신과 일치하며 본질을 변경하지 않는 작은 기술적 세부 사항 만 있습니다. 정의하고 비참한 비용에 대해 이해하지 못했습니다.

아니요, 반대로 심각하지 않습니다. 방금 TC에 솔루션을 찾을 위치를 다시 설명했습니다(첫 번째 게시물에서는 확인하지 않았지만 작동했을 가능성이 가장 컸습니다). 그리고 모든 잡담이 시작되었습니다 :)

마이크로리터 단위의 이러한 어레이의 상황은 슬프지만 실제로 99%의 경우에 이러한 어레이가 필요하지 않다는 것은 또 다른 문제입니다. 어깨에 머리가 있을 때 모든 코더는 구조 또는 개체를 사용합니다.

내가 쓴 것을 정의하면 내가 설정한 문제를 해결할 수 있습니다.) - ArrayDel에 대한 한 번의 호출로 다른 배열에 대해 Dmitry가 작성한 코드를 실행합니다. 사실, 이것은 기능이 아니라 그들이 말하는 "죽은 찜질"입니다. 그리고 정의 비용에 대해 - 이것은 모든 배열에 대해 int ar[] 매개변수의 공식화를 사용하여 옵션을 실행하려는 경우 이 작업을 수행할 수 있습니다(이는 단순화되었으며 실제로 차원 수가 전송되어야 합니다. 거기):


 #property strict

#define PackAndDel(A,S,C) { int tmp[]; ArrayCopy (tmp,A); ArrayDelete(tmp,S,C); ArrayCopy (A,tmp); }

void ArrayDelete( int &ar[], int start, int count)
 {

   // ..... ;

 }



void OnStart ()

{

   int ar1[];

   int ar2[][ 5 ];

   int ar3[][ 6 ][ 2 ];

  PackAndDel( ar1, 0 , 1 );

  PackAndDel( ar2, 4 , 1 );

  PackAndDel( ar3, 1 , 3 );

}