프로그래밍 언어

    [C++] 문자열 뒤집는 방법 string

    출처 X 개인이 작성한 코드string은 vector형이므로 vector형 테스트 x1. algorithm 헤더 파일 내 reverse 함수 사용두 개의 오버로딩 함수가 존재한다 아래껀 일단 생략한다, && 임시값인 _Enable_if_execution_policy 플래그인데 용도를 잘 모르겠다. 이번에 쓰여질 함수 원형은 아래와 같다, First는 시작 지점의 포인터와 Last는 마지막 지점 // string 사용string s = "algorithm";cout  // 배열 사용, 특이사항: const char*로 문자열 초기화 시 const이기 때문에 reverse 함수가 작동되지 않는다.끝 인덱스를 구하기 위해선 단순하게 총 길이에서 1만큼 빼주면 된다.char s[] = "algorithm";co..

    [C] main()과 return 사용 이유, 설명

    C 프로그램 동작 방식C 프로그램은 main() 이라는 함수가 운영체제(OS) 에서 호출되면서 시작되고, 그 main 함수가 호출되면 main 이름으로 정의된 block으로 진입하여, bloc 내의 명령문들을 순서대로 실행하게 된다. User는 사용자다. Application을 c 프로그램이라고 생각해보자.프로그램은 '함수의 집합체'이니 예를 들어서 프로그램도 함수라고 가정한다면, 그 함수를 호출하는 주체는 OS이며, 결국 거대한 함수이다. O/S가 프로그램을 실행한다는 것은 특정 실행 파일에 존재하는 'main' 함수를 호출하는 것이다. [그림 1]에서 볼 수 있는 call main() 위의 [그림1]의 Application 부분의 오른쪽 화살표를 보면, C 언어 코드가 적혀있다. 지금 봐야하는 lin..

    [Python] 문자열 관련 함수 총 정리

    type(변수) : 문자열(string) 문자열 표현법 4종 : '문자열', "문자열", ''''문자열''', """문자열""" 이스케이프 코드 1 (\ + 문자) : \n, \t, \\, \', \"\n : 줄바꿈\t : 탭간격\\, \', \" : 문자 표현 이스케이프 코드 2 (\ + 문자) : \b, \r\b : 백스페이스\r : 캐리지 리턴\f : 폼피드\v : 수직 탭\000: 널 문자열 연산자 : + , *문자열 + 문자열 : 문자열 간 연결문자열 * 정수 : 정수만큼 문자열 반복 자료형 변환 : strstr(값) : 값(실수, 정수, bool 등)을 문자열로 변환함 문자열 인덱싱 & 슬라이싱인덱싱 : 변수[인덱스]슬라이싱 : 변수[시작인덱스 : 종료인덱스] = a[x : x+3] = a[x..

    [C++] 원이 겹치는지에 대한 개인 코드

    struct Circle{ float x, y, z; float mp = 0; // middle-point float l = 0;public: Circle() = default; Circle(float x, float y, float z = 0) :x(x), y(y), z(z) { } bool operator==(Circle& ref) { return this->x == ref.x && this->y == ref.y && this->z == ref.z; }};int main(){ // 주어진 원 vector v({ {-3, 0}, {0, 5}, {2, 3} }); int size = v.size(); vector> check(size, vector(size)); int ans = 0; for (int i..

    [데이터베이스] 스키마란? 개념 스키마, 내부 스키마, 외부 스키마

    스키마란스키마란 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것이다. 즉, 개체의 특성을 나타내는 속성 (Attribute)과 속성들의 집합으로 이루어진 개체 (Entity), 개체 사이에 존재하는 관계 (Relation)에 대한 정의와 이들이 유지해야 할 제약 조건들을 기술한 것이다.쉽게 정리하자면, DB 내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조이다.특징1) 스키마는 데이터 사전 (Data Dictionary)에 저장된다. 2) 현실 세계의 특정한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어지게 된다. 3) 시간에 따라 불변인 특성을 갖는다. (시불변성) 4) 데이터의 구조적 특성을 의미한다. 5) 인스턴스에 의해 규정된다.1) 개념 스키마 = 전체적인..

    [데이터베이스] 용어 정리 - 릴레이션, 어트리뷰트, 튜플, 도메인, 차수, 카디널리티, 스키마

    릴레이션관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다. 결국, 릴레이션은 DB 테이블이다. 흔히 개발을 할 때 DB 설계를 하게 되는데 ERD (Entity Relationship Diagram) 아래와 같이 구성한다. 그래서 이 네모칸 하나하나가 결국 릴레이션이다.특징한 릴레이션에는 똑같은 튜플 (Tuple)이 포함될 수 없으므로 릴레이션에 포함된 튜플들은 모두 상이하다.한 릴레이션에 포함된 튜플 사이에는 순서가 없다.튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.릴레이션을 구성하는 튜플을 유일하..

    [C#] 포인터 관련 unsafe fixed 키워드

    포인터를 사용하면 CLR에서 안전성을 책임지지 못하고, 불완전한 코드가 된다고 하며 에러를 발생하는데, 이렇게 예전 코드를 사용해야 할 경우, 빌드 속성을 변경해줌으로써 unsafe 코드를 사용 할 수 있다.사용 방법형식 또는 멤버 선언에서 unsafe 한정자를 사용할 수 있으며, 이렇게 선언해줄 경우 안전하지 않은 컨텍스트로 간주된다.  fixed 지시어는 unsafe 컨텍스트에서만 허용된다.  클래스가 인스턴스화 되면  CLR에 의해 언제든지 메모리가 이동 될 수 있는데, fixed 지시어를 이용하면 해당 코드에 들어간 변수 및 객체는 가비지 콜렉팅이 발생할 때 주소 재배치 대상이 아니게 된다.unsafe private uint reload(){ uint s0 = 0, s1 = 0; int..

    [C#] Marshal

    1. 데이터 타입IntPtr IntPtr 형식은 그 크기가 플랫폼마다 고유한 정수로 디자인 되었다. 즉, 이 형식의 인스턴스는 32비트 하드웨어 및 운영 체제에서는 32비트로, 64비트 하드웨어 및 운영 체제에서는 64비트여야 한다.  IntPtr 형식은 포인터를 지원하는 언어에서 사용할 수 있으며, 포인터를 지원하는 언어와 포인터를 지원하지 않는 언어 사이에서 데이터를 참조하는 일반적인 방법이 된다.  핸들을 보관하는 데도 IntPtr 개체를 사용할 수 있다. 예를 들어, IntPtr의 인스턴스는 파일 핸들을 보관하기 위해 System.IO..::.FileStream 클래스에서 광범위하게 사용된다.  IntPtr 형식은 CLS 규격이지만, UIntPtr 형식은 그렇지 않다. 공용 언어 런타임에서는 In..

    [C#] 관리되는, 관리되지 않는 코드

    관리되는 코드.NET CIL로 작성하고 컴파일 하는 .NET상의 코드 -GC 메모리 관리가 된다 관리되지 않는 코드기계 코드를 직접 컴파일 하도록 컴파일되는 .NET에 없는 코드 -GC 메모리 관리가 안된다.ex) 윈도우 시스템 자원IntPtr - 인터포인터관리되지 않는 메모리 블록에 대한 포인터 정수형 포인터를 의미하는 값 형식의 타입포인터는 메모리 주소값을 보관하는 곳IntPtr 타입은 메모리 주소를 가리키는 것 외에 윈도우 OS의 핸들값을 보관하는 용도로 쓰인다. 핸들은 윈도우 OS가 특정 자원에 대한 식별자로서 보관하는 값인데 일례로 파일이 좋은 예다.파일처리, OS에서 제공되는것 처리를 할 때 사용된다.ex) 이미지 처리에서도 쓰인다.Marshal Class - 마샬관리되지 않는 메모리 블록 ..

    [C#] DLL 파일 생성, 참조하는 법

    DLL이란?DLL (Dynamic Link Library)은 동적 링크 라이브러리의 약자로 표준화된 함수나 데이터를 모아놓은 것을 의미한다. 장점) - 한 코드를 여러 프로그램이 동시에 사용하기 때문에 메모리가 절약된다.- 리소스의 교체가 가능하다.- 재사용성이 뛰어나다.- 정적 링크를 사용하는 경우 실행 파일에 라이브러리의 함수가 모두 포함되어 실행파일이 커지지만 DLL을 사용하는 프로그램은 크기가 작다. C#을 이용해 DLL 파일을 생성 및 참조하는 방법은 다음과 같다 1. Visual Studio 실행 후 새 프로젝트를 만든다. 2. 이때 프로젝트 템플릿은 클래스 라이브러리로 생성해줘야 한다. 3. 프로젝트 명은 Calculator로 이름 짓고 다음을 클릭한다. 4. 클래스 명을 'Cal'으로 변경..