배열
C# 배열 초기화, 다차원배열, 가변배열에 대해서
1. C# 배열의 선언 초기화 사용 방법 (Array) -> 배열이란 ? : 배열이란 관련있는, 비슷한 데이터를 효과적으로 관리하기 위한 자료구조다. : 배열을 이용하면 연관되어있는 데이터들을 for문과 결합하여 손쉽게 순회 할 수 있다. C#에서의 배열 선언 방법 1. 기본 모양 - 자료형[] 변수이름 = new 자료형[N] { 초기화 하거나 안하거나}; 2. 배열의 요소 개수를 지정하고 선언과 동시에 초기화 하는 방법 - int[] arr1 = new int[5] { 11, 12, 13, 14, 15 }; 3. 배열의 요소 개수를 지정하지 않고 선언과 동시에 초기화 하는 방법 - int[] arr1 = new int[] { 11, 12, 13, 14, 15 }; 4. 배열의 요소 개수를 지정하고, 추..
달팽이 방향으로 배열 순회
아래는 소스코드다, v 벡터의 크기와 상관 없이 달팽이 방향으로 순회한다, 로직은 매우 간단하다. sr = 행 시작, sc = 열 시작, er = 행 끝, ec = 열 끝 좌측에서 우측으로 순회할 때마다 시작되는 행을 한 칸씩 증가 상 측에서 하 측으로 순회할 때마다 끝나는 열을 한 칸씩 축소 우측에서 좌측으로 순회할 때마다 끝나는 행을 한 칸씩 축소 하 측에서 상 측으로 순회할 때마다 시작되는 열을 한 칸씩 증가 순회할 때마다 배열에 저장 후 기반 범위 for문 써서 출력. #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(N..
C++ 클래스 배열 포인터 및 2차원 배열 포인터
클래스 포인터 배열은 아래와 같다. #include #include #define SIZE 3 using namespace std; class A { int mVal = 0; public: // 생성자 A() { cout
C# 가변 길이 배열 (Variable Length Array)
가변 길이 배열은 2차원 배열에서 각각의 첫번째 원소에 다른 길이의 배열을 담는 것이다. C#은 C++과 달리 고정 길이 배열은 [ 행 크기 , 열 크기 ] 이다. [][]는 가변 길이 배열을 뜻한다.한 가지 특이사항이라면 foreach 돌릴 시 고정 길이 배열은 전체의 인덱스를 탐색한다, 반대로 가변 길이 배열은 순차적으로 행에 해당되는 원소에만 접근한다. using System; using System.Collections.Generic; using System.Runtime.InteropServices; namespace ConsoleApplication1 { public class Parent { public static readonly int Height = 3; public static rea..
C++ 가변 길이 배열 (Variable Length Array)
가변 길이 배열은 2차원 배열에서 각각의 첫번째 원소에 다른 길이의 배열을 담는 것이다. 아래는 C 스타일이다. #include using namespace std; int main() { // ------- 고정 길이 배열 ------- int arr[10]{ 5 }; for (int i = 1; i < 10; i++) arr[i] = arr[i - 1] + 5; // ------- 가변 길이 배열 (C 스타일 배열 사용) ------- int arr2[3]{ 1, 2, 3 }; int arr3[5]{ 4, 5, 6, 7, 8 }; int* variableArr[3]; *variableArr = arr; *(variableArr + 1) = arr2; *(variableArr + 2) = arr3; c..
C# 인덱서 (Indexer)
인덱서는 인덱스를 이용해 객체 내의 데이터에 접근하게 해주는 프로퍼티이다. 인덱서를 선언하는 방법 class 클래스이름 { // 한정자 인덱서형식 this[형식 인덱스식별자] { get { // 인덱스식별자를 이용하여 내부 데이터 반환 } set { // 인덱스식별자를 이용하여 내부 데이터 저장 } } } 인덱서는 프로퍼티처럼 식별자를 따로 가지지는 않는다. 프로퍼티는 이름을 통해 객체 내의 데이터에 접근하지만 인덱서는 인덱스를 통해 객체 내의 데이터에 접근한다. 인덱서의 선언 예 인덱서를 통해 정수 형식 배열 array에 접근한다. 인덱서를 통해 데이터를 저장할 때 인덱스보다 배열의 크기가 작다면 배열의 크기를 인덱스에 맞춰 재 조정하는 코드이다. class MyList { private int[] a..
C# 배열 복사 방법
한 가지 유의해야할 점은 Clone 함수는 얕은 복사이다. using System; using System.Collections.Generic; using System.Runtime.InteropServices; public class A { public float value { get; set; } public A(float value) { this.value = value; } } public class Test { static readonly int mk_size = 10; static void Print(A[] arr) { foreach (var item in arr) { Console.Write($"{item.value} "); } Console.WriteLine(); } static void ..