반응형

C++ 반복자 (iterator)

포인터와 상당히 비슷하며, 컨테이너에 저장되어 있는 원소들을 참조할 때 사용

반복자란, 컨테이너에 저장되어 있는 모든 원소들을 전체적으로 훑어 나갈 때 사용하는, 일종의 포인터와 비슷한 객체라고 할 수 있음

  • 반복자는 컨테이너 내부의 원소(객체)를 가리키고 접근.(* 연산자)
  • 반복자는 다음 원소로 이동하고 컨테이너의 모든 원소를 순회할 수 있어야 한다. (++, !=, == 연산자 제공)

반복자의 범주

양방향 반복자 : ++, -- 이동이 가능한 반복자 : (list, set, multiset, map, mutilmap)

임의 접근 반복자 : 양방향 반복자 기능에 +, -, +=, -=, [] 연산이 가능한 반복자 : (vector)

 

* end() 함수는 끝이 아니다.

end()가 가리키고 있는 것은 맨 마지막 원소의 바로 다음번 원소이다. 따라서 이러한 반복자를 past-the-end 반복자라고 부른다.(종점을 지나쳐버린 곳을 가리키는 반복자)

 

벡터 iterator 선언 예시

	vector<int> v; //벡터 선언
	vector<int>::iterator it; //iterator 선언
	v.push_back(1); 
	v.push_back(2);
    
	it = v.begin(); //it 초기 값
	cout << *it << endl; 
	it++; //+한 칸이동
	it = v.end(); //마지막 칸의 다음 칸
	it--; //-한 칸이동 (마지막 칸)
	cout << *it << endl;
	

모든원소 출력 예시

 for (iter = v.begin(); iter != v.end(); ++iter)
 {
        cout << *iter << endl;
 }

 

 

 

auto

초기화 값에 따라 알아서 데이터 타입을 정해주는 키워드

auto a1 =10; //int 타입
auto a2 =10.f //float 타입
auto a3 = "c"; //char 타입
auto a4 ="BlockDMask" // string 타입
auto a5 = {10,20,30}; //int 배열 타입

 

auto에 const, const& 한정자가 붙을 때

auto는 한정자와 함께 사용하면 효율적이다.

auto와 &, * 함께 사용하기

&, *의 특성은 복사가 되지않고 주소를 가리키거나 참조를 하는 것 

 

 

vector auto 이용하기

for(auto it = v.begin(); it!= v.end(); ++it)
{
	*it *= 2; //vector원소에 x2 하기
}

 

vector auto& 이용하기

for(auto& elem : v)
{
	elem *=2; //vector 원소에 x2 하기
}

 

반응형

반응형

1) n*m 문자열 (띄어쓰기X) 입력 받기

	char arr[20][20];
	int n, m; //n*m
	cin >> n;
	cin >> m;
	//input()
	for (int i = 0; i < n; i++)
	{
		string s;
		cin >> s;
		for (int j = 0; j < m; j++)
		{	
			arr[i][j] = s[j];
		}
	}

 

반응형
반응형

aws

아마존 웹 서비스

aws는 처음에 Iaas를 서비스 하였지만, 점차 사업을 확장하며 PaaS-> SaaS 까지 사용자들에게 제공함.

구글이나 MS는 SaaS 기반의 클라우드 서비스에서 PaaS, IaaS로 확장.

 

IaaS(Infrastructure as a Service) : 서비스 인프라

"컴퓨팅 인프라 자원을 필요한 만큼 이용하고, 사용한 만큼 합리적으로 지불"

AWS, 네이버 플랫폼과 같은 인프라스트럭쳐를 제공

가상서버, 스토리지, 가상 네트워크 등의 리소스를 서비스 형태로 제공

사용자는 물리적인 HW를 직접 관리X, 직접적으로 서비스를 이용하는 리소스를 사용할 수 있다. 

 

PaaS(Platform as a Service) 

개발자가 App 개발, 서비스를 하기 위해 사용가능한 서비스와 기능들이 제공하는 클라우드 서비스 

개발자들이 Low Level의 인프라스트럭처에 대해 신경쓰지않고, 앱을 개발하고 테스트 하게 함.

즉, 백그라운드서비스에 대해서 크게 고려하지않고 프론트앤드 개발에 집중

가장 이상적인 App 플랫폼 관점의 클라우드 모델로 업계에 받아들여지고 있음.

 

SaaS(Software as a Service)

App을 조직이나 개인에게 쉽게 제공되는 it 서비스 방식

ex)웹메일, 구글 클라우드, 네이버 클라우드, MS오피스 등등

 

 

 

 

반응형

'App Project' 카테고리의 다른 글

크로스 플랫폼 분석 ( 아이오닉/리액트/플러터)  (0) 2020.07.10
Project_Plan  (0) 2020.06.29
반응형

ODBC (Open DataBase Connectivity) 

  • DBMS에 연결하기 위한 SDW의 표준 규격
  • 표준 규격이기 때문에 ODBC에 정해진 순서를 따르면 연결하는 DMBS에 크게 구애 받지 않음.

 

중요 함수 

DSN(Data Source Name) : ODBC 관리자

PostgreSQL의 정보 집합을 대표하는 이름

드라이버 다운경로

사용자 DSN은 추가시 현재 사용자(USER)만 사용 가능

시스템 DSN은 추가시 모든 사용자 사용 가능

파일 DSN은 추가시 모든 사용자 사용 가능

파일 DSN은 추가시 모든 사용자가 사용 가능, DSN 정보를 컴퓨터에 파일로 저장

굳이 시스템 DSN으로 할 필요가 없어서 사용자 DSN을 사용

 

 

반응형

'C++' 카테고리의 다른 글

C++ 동적할당  (0) 2020.07.14
C++ iterator, auto  (0) 2020.06.29
C/C++ 문자열 분리 함수 (strtok, strtok_s) 유용 warning발생  (0) 2020.06.26
C++ 자료의 크기 및 범위 총 정리  (0) 2020.06.26
C/C++ 자료형  (0) 2020.06.24
반응형

strtok함수

VS 2005부터 CRT 라이브러리의 문자열을 다루는 함수의 안정성을 신경씀 따라서 기존의 문자열에 _s를 붙이는 안전함수를 제공 strtok를 그대로 사용 시 warning이 발생한다. 

 

 

strtok_s함수

 

char buffer[100];
char * contxt = NULL;
char * tok1 = NULL;
strValue = strtok_s(buffer, " ", &contxt);

 

  • buffer의 char배열에서 " "를 기준으로 짜름.
  • 나머지부분은 contxt에 저장됨.
  • Java에서의 split랑 비슷한 사양을 가짐
반응형

'C++' 카테고리의 다른 글

C++ 동적할당  (0) 2020.07.14
C++ iterator, auto  (0) 2020.06.29
C++ ODBC (Open DataBase Connectivity)  (0) 2020.06.26
C++ 자료의 크기 및 범위 총 정리  (0) 2020.06.26
C/C++ 자료형  (0) 2020.06.24
반응형

CString은 MFC에서 문자열을 처리를 아주 쉽게 처리할 수 있도록 제공해주는 클래스

 

1)문자열로  CString 개체 만들기

CString temp = _T("test");

CString temp2 = _T("test2");

 

2)CString의 개별문자 접근 : GetAt() , SetAt()

 

3) CString 개체 연결 : +, +=

CString s1 = _T("a");

s1 += _T("b");

CString s2 =_T("c");

CString message = s1 + _T("d") + s2 ; 

 

4)CString 개체를 비교. Compare(), CompareNoCase()

관계형 연산자를 사용하여 두 값을 비교가능.

 

5)CString을 C스타일의 null로 종료되는 문자열 사용

CString 개체를 C스타일 문자열로 변환가능. 단, LPCSTR타입으로 캐스팅해야함. 

ex)

CString tmp = "test";

char tmpChar[256];

strcpy(tmpChar,(LPCTSTR)tmp);

 

ex에서 CString은 C스타일의 null로 종료되는 읽기 전용 문자열에 대한 포인터를 반환.!

strcpy함수는 C스타일문자열 복사본을 tmp변수에 저장.

 

ex)

CString tmp = (_T("test"));

int sizeStr = (tmp.GetLength() + 1) ;

LPTSTR lpsz = new TCHAR[sizeStr];

_tcscpy_s(lpsz,sizeSTr,tmp); 

 

strcpy_s /_tcspy_s 의 세번 째인수는 const wchar_t*(유니코드) 혹은 const char* (ANSI)인데 여기 예제에서는 CString을 전달함. 

 

 

 

 

 



출처: https://kwonkyo.tistory.com/94 [EveryX]



 

반응형

'MFC' 카테고리의 다른 글

[MFC] CString에서 특정한 문자 찾기 Find함수  (0) 2020.07.02
[MFC] 자주 쓰이는 형변환  (0) 2020.06.30
[MFC] 응답없음 처리  (0) 2020.06.25
[MFC] ProgressBar  (0) 2020.06.25
[MFC] LPSTR과 LPCTSTR  (0) 2020.06.25
반응형

 분류

타입 

 크기

[bytes]

 범위

표현형 / 비고

 void 

 void

-

 -

 -

 Boolean

 bool 

1

 0 or 1

 -

 Integer (signed)

 부호있는 정수형

 char / 

 signed char

1

 -127 ~ 127

 %c, %hhi

 signed short int /
 short int

2

 -32,768 ~ 32,767

 %hi

 int / 

 signed int

4

 -2,147,483,648 ~ 2,147,483,647

 %i, %d

 signed long int /

 long int

4

 -2147483648 ~ 2147483,647

 %li
 signed long long int

 8

 -9223372036854775808 ~

 9223372036854775807

 %lli
 Integer (unsigned)

 부호없는 정수형

 unsigned char

1

 0 ~ 255

 %c, %hhu

 unsigned short int

2

 0 ~ 65535  %hu
 unsigned int

4

 0 ~ 4294967295

 %u

 unsigned long int

4

 0 ~ 4294967295

 %lu

 unsigned long long int

8

 0 ~ 18446744073709551615

 %llu

 Floating
 실수형

 float

4

 ± 3.4E ± 38 (~7 digits)

 %f, %g
 double

8

 ± 1.7E ± 308 (~15 digits)

 %lf, %lg

 long double

8

 ± 1.7E ± 308 (~15 digits)

 %Lf, %Lg

 character
 문자형

 char

1

 -127 to 127 or 0 to 255  %c
 wchar_t

2

 0 ~ 65535  (1 wide character)



출처: https://kwonkyo.tistory.com/56 [EveryX]

반응형

'C++' 카테고리의 다른 글

C++ 동적할당  (0) 2020.07.14
C++ iterator, auto  (0) 2020.06.29
C++ ODBC (Open DataBase Connectivity)  (0) 2020.06.26
C/C++ 문자열 분리 함수 (strtok, strtok_s) 유용 warning발생  (0) 2020.06.26
C/C++ 자료형  (0) 2020.06.24

+ Recent posts