분류 전체보기

    [C] 인접리스트로 그래프 구현

    // 그래프를 인접리스트로 표현하기 #include "stdio.h" #include "stdlib.h " #define MAX_VERTEX 30 // 인접리스트의 노드 구조 typedef struct graphNode { int vertex; // 정점을 나타내는 데이터 필드 graphNode *link; // 다음 인접 정점을 연결하는 링크필드 }graphNode; // 그래프를 인접리스트로 표현하기 위한 구조체 typedef struct graphType { int n; //정점 개수 graphNode *adjList_Arr[MAX_VERTEX]; }graphType; // 공백그래프를 생성하는 연산 void CreateGraph(graphType *ptr) { int v; ptr->n = 0; f..

    Stack (스택) 구현

    #include using namespace std; class MyIntStack { int* p; int size; int tos;public: MyIntStack() {}; MyIntStack(int size); MyIntStack(MyIntStack& s); ~MyIntStack(); bool Push(int n); bool Pop(int& n);}; int main() { MyIntStack a(10); a.Push(10); a.Push(20); MyIntStack b = a; b.Push(30); int n; a.Pop(n); cout size = size;} MyIntStack::MyIntStack(..

    C++ 캐스팅 static_cast / reinterpret_cast 예제

    #include #include #include #include #include #include using namespace std; template T* Cast(F* _ptr) { static_assert(std::is_pointer::value, "포인터가 아님"); void* p_void = _ptr; T* p_casted = static_cast(p_void); if (!p_casted) p_casted = reinterpret_cast(p_void); return p_casted; } class A { protected: int val = 10; public: A() { cout

    C++ SFINAE 여러 타입에 대응하는 템플릿 오버로딩

    #include #include #include #include #include #include using namespace std; template using enable_if_t = typename enable_if::type; template void Run(T& t) { // 정수 타입들을 받는 함수 (int, char, unsigned, etc.) cout

    C++ 콜백 CallBack 함수

    #include #include #include #include #include #include using namespace std; using void_two_params_pointer = std::function; void Function(bool _is_value, int _value) { cout

    C# Delegate Event 사용법

    delegate 는 메서드를 가리킬 수 있는 타입의 간편 표기법. event도 간편표기법. event를 사용하면 정형화된 콜백 패턴을 구현하려할때 코드를 줄일 수 있음. - 조건 1. 클래스에서 이벤트(콜백)를 제공한다. 2. 외부에서 자유롭게 해당 이벤트(콜백)을 구독하거나 해지하는 것이 가능하다. 3. 외부에서 구독/해지는 가능하지만 이벤트 발생은 오직 내부에서만 가능하다. 4. 이벤트의 첫번째 인자는 이벤트를 발생시킨 타입의 인스턴스다. 5. 이벤트의 두번째 인자는 해당 이벤트에 속한 의미 있는 값이 제공된다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threadi..

    C# 사용자 정의 전환 연산자(암시적/명시적)

    using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices.ComTypes; namespace ConsoleApp8 { public struct s_data { public string name = ""; public int hp = 0, mp = 0; public s_data() { } // 데이터 대입 public s_data(string _name, int _hp, int _mp) { name = _name; hp = _hp; mp = _mp; } } // 기본 캐릭터 클래스 public class Character { public s_data data = new s_dat..

    [SQL] 비번 재설정 하는 방법

    서비스에서 mysql 서비스 중지 mysqld --datadir="C:\ProgramData\MySQL\MySQL Server 8.0\Data" --console --skip-grant-tables --shared-memory 창 그대로 유지 후 cmd 하나 더 띄워서 총 cmd 창 2개 mysql -u root use mysql update user set authentication_string=null where user='root'; flush privileges; alter user ..

    [SQL] 커서 #1

    1.TEST 테이블 생성하기CREATE TABLE`TEST_TB1`(`id`BIGINT(20) NOT NULL AUTO_INCREMENT,`name`VARCHAR(50) NULL DEFAULT NULL COLLATE'utf8mb4_unicode_ci',`useYn`VARCHAR(50) NULL DEFAULT NULL COLLATE'utf8mb4_unicode_ci',PRIMARY KEY(`id`)..

    C++ 유니폼 초기화와 생성자

    C++11에 유니폼 초기화가 추가되었다. {}를 이용한 초기화여서 Brace-Initialization 이라고도 부른다. struct A { int x, y; }; class B { public: B(int x, int y) : mX(x), mY(y) {} private: int mX, mY; }; A a = {10, 20};// {} B b(10, 20);// () int c[4] = {1, 2, 3, 4};// {} C++11에서는 이 부분을 모두 {}를 이용하는 유니폼 초기화로 문법을 통일시켰다, =을 붙이거나 붙이지 않거나 모두 유니폼 초기화를 사용할 수 있다. A a1 = {10, 20}; B b1 = {10, 20}; A a2{10, 20}; B b2{10, 20}; 유니폼 초기화는 일반 자료..