순회
C# foreach 사용법과 다양한 예제
1. foreach 의미 끝을 지정해주는 다른 반복문과 달리, 인자로 들어온 itrable-item의 내부 인덱스 끝까지 알아서 순환을 해주는 반복문이다. foreach (element in iterable-item) { // body } : 여기서 element는 데이터 타입과 변수명을 포함하고. 아래와 같이 사용된다. : foreach(string str in arr); : foreach(데이터타입 변수명 in 배열,컬렉션등) 2. foreach 예제1 - 1차원 배열에서의 foreach public static void Main(string[] args) { int[] arr = { 11, 12, 13, 14, 15, 16, 17 }; //foreach문 Console.WriteLine("## fo..
달팽이 방향으로 배열 순회
아래는 소스코드다, 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..
[Unreal] 자료구조 순회 방법
TMap 변수명; Key = 키, Value = 값 범위 기반 for문 사용 구현, . 멤버 변수 접근자 사용 예) 변수명.Key, 변수명.Value for (auto 변수명 : TMap 변수명) { } 이터레이터 사용 구현, it-> 화살표 연산자 참조 또는 (*it) 역참조로 접근 예) it->Key, (*it).Value 주의) TConstIterator 형이지만 != 연산자는 nullptr과 비교 불가다. ++ 연산자는 파라미터를 봐서는 전위 연산자인데 후위 연산자는 복사 오버헤드로 인해 막아놓은듯 하다. for (auto it = TMap 변수명.CreateConstIterator(); it; ++it) { }
[실1] 1991 - 트리 순회
#include using namespace std; int n; struct node { char left; char right; }; struct node tree[100]; void preOrder(char root) { if (root == '.') return; else { cout t1 >> t2 >> t3; tree[t1].left = t2; tree[t1].right = t3; } preOrder('A'); cout left); cout data; In_order(_node->right); } // (왼쪽, 오른쪽, 루트) void Post_order(s_node* _node) { if (!_node) return; Post_order(_node->left); Post_order(_node..
선 중 후 순회 트리
#include using namespace std; #define SAFE_DELETE(x) if(x != nullptr) delete x; // 트리 구조체 typedef struct s_tree_node { char data; s_tree_node* p_left; // 왼쪽 노드에 대한 포인터 s_tree_node* p_right; // 오른쪽 노드에 대한 포인터 public: // 전위 순회 함수 static void Pre_order(s_tree_node* _p_root_node) { if (_p_root_node) { printf("%3c", _p_root_node->data); Pre_order(_p_root_node->p_left); Pre_order(_p_root_node->p_right..