본문 바로가기

전체 글131

[C++] STL fill() 함수 사용법 fill 함수를 사용하려면 일단 헤더를 포함해줘야 한다. #include 사용 방법은 fill(초기화 시키고 싶은 부분의 시작 주소, 초기화시키고 싶은 부분의 끝 주소, 초기화할 값); 배열이라면 fill(arr, arr + 5, 10); 벡터라면 fill(v.begin(), v.end(), 10); 즉 for(int i = 0; i < 5; i++) { arr[i] = 10; } 이 for문을 사용한 코드와 fill(arr, arr + 5, 10); 이 한 줄은 같은 역할을 한다. fill(arr, arr + 2, 10); fill(arr + 2, arr + 5, 20); 이렇게 부분 부분씩 초기화시켜줄 수도 있다. 2023. 11. 1.
[C++] STL find() 함수 사용법 1. find() #include find(begin, end, value); 일련의 자료구조(Array, vector 등)에서 원하는 값을 탐색하는 함수 begin과 end는 iterator 객체가 와야 한다. 범위 내(begin - end)의 원소들 중에서 value와 일치하는 첫번째 원소의 iterator를 리턴한다. 범위 내에 찾고자 하는 값이 없다면 end를 반환한다. 2. string.find() #include string str; str.find(value); 문자열 내에서 value 값을 찾는다. 문자열 내에 value와 일치하는 값이 있다면 value의 첫번째 인덱스를 반환한다. 일치하는 값이 없다면 string::npos(== 쓰레기 값)를 반환한다. https://novlog.tis.. 2023. 10. 28.
[C++] STL list 사용법 연결리스트(list) 연결리스트는 배열의 각 요소가 값만 갖고있는 것이 아니라 다음 요소를 가리키는 포인터를 함께 가지고 있다. 이는 배열에서 중간에 추가 혹은 삭제할 때 뒤의 원소를 쭉 밀거나 뒤의 원소를 쭉 당겨와야하는 단점을 보완한 것이다. 배열의 요소들을 직접 미는 것이 아닌 포인터값만 변경해주는 것으로 임의의 위치에 추가/삭제 연산을 할 수 있다. C++에서는 list라는 자료형으로 연결리스트가 구현되어 있다. //리스트 선언 list list; //리스트 포인터 선언 list::iterator iter = list.begin(); -->> c++11이상부터 auto iter = list.begin(); 가능 반복자 begin() : beginning iterator 반환 end() : end .. 2023. 10. 22.
[C++] STL vector 사용법 벡터 vector는 C++ 표준 라이브러리에 있는 자료구조 컨테이너 중 하나로 사용자가 쉽게 사용하기 위해 정의된 클래스이다. 벡터의특징 1. 동적으로 원소를 추가할 수 있다. 즉, 크기가 자동으로 늘어난다. 2. 맨 마지막 위치에 데이터를 삽입하거나 삭제할 때에는 문제가 없지만 중간 데이터의 삽입 삭제는 배열과 같은 메커니즘으로 동작한다. 3. 배열과 마찬가지로 인덱스를 이용하여 각 데이터에 접근할 수 있다. 선언 vector v; // vector 변수 이름; 형태로 선언 삽입 연산 v.push_back(1); // 마지막에 1 추가 v.insert(v.begin() , 7); // 맨 앞에 7을 삽입 v.insert(v.begin() + 2 , 10); // index 2의 위치에 10 삽입 삭제연.. 2023. 7. 18.
[C++] STL pair 사용법 pair 사용법 우선 pair을 사용하기위해서는 utility 헤더파일이 필요한데 이미 vector 헤더파일에 포함되어있기 때문에 #include만 추가하면 사용할 수 있다. pair p; // int 타입 데이터 2개를 관리할 수 있는 pair 클래스의 p객체 pair p;// int타입과 double 타입 데이터를 한번에 관리할 수 있는 pair 클래스의 p객체 pair p;// 각 각의 double 타입 데이터를 한번에 관리할 수 있는 객체 pair p;// int 타입과 char타입 테이터를 하나로 묶어서 관리할 수 있는 p객체 pair p pair 클래스의 객체 p를 생성합니다. 객체 이름은 p가 아니어도 상관없다. p.first p의 첫번째 인자를 반환한다. p.second p의 두번째 인자를.. 2023. 7. 18.
[C++] STL sort함수 사용법 sort() 함수 사용하는 방법 #include #include // STL 라이브러리 -> sort() 함수가 정의되어있음 using namespace std; bool compare(int a, int b) { // 비교 함수 return a > b; // 정렬 기준 : 내림차순 정렬 } int main(void) { int a[10] = { 9, 3, 5, 4, 1, 10, 8, 6, 7, 2 }; sort(a, a + 10); // a -> 메모리 주소, a + 10 -> 정렬할 마지막 주소가 있는 메모리 주소 sort(a, a + 10, compare); // 추가로 함수를 넣어주면 원하는 정렬 기준으로 정렬을 할 수 있다. //=> 9 ~ 2 까지의 주소를 정렬한다는 사실을 나타냄 for (i.. 2023. 7. 18.
Chapter 8 Security 8.5 Securing TCP connection: SSL Secure Sockets Layer (SSL) - 메시지 전송 보안을 위한 표준 네트워크 계층 (프로토콜) - 응용 계층의 데이터가 전송 계층으로 내려가기 전에 SSL을 통해 데이터가 암호화된다. - 장점: 기밀성, 무결성 보장, 서버인증 HTTPS = HTTP + SSL SSL = TLS (Transport Layer Security) 8.6 Network layer security: IPsec IPsec IPSec은 네트워크에서의 안전한 연결을 설정하기 위한 프로토콜 - VPNs (Virtual Private Networks) IPSec는 가상 사설 네트워크(VPN)를 통해 인터넷에 연결하여 원격으로 회사 파일에 액세스한다. IPSec 프로.. 2023. 6. 15.
Chapter 7 Wireless and Mobile Networks 7.1 Introduction Wireless hosts wireless hosts 는 노트북, 스마트폰이 있다. 노트북은 stationary인데, 대부분 한 곳에 앉아서 사용하기 때문에 안 움직인다고 말한다. 스마트폰은 mobile인데, 움직인다고 말한다. 그러므로 무선이라고 반드시 이동성을 의미하는 것은 아니다. mobility는 그림의 아래부분과 같이 이동하여 네트워크를 이동해 가는 것이다. 이동통신은 무선이다 (o) 무선은 이동통신이다(x) Base station 기지국은 일반적으로 유선 네트워크에 연결된다. "relay" 는 "area"에 있는 유선 네트워크와 무선 호스트 간에 패킷 전송을 담당한다. Wireless link wireless link는 모바일을 기지국에 연결되는데 사용된다. (백.. 2023. 6. 15.
Chapter 6 링크계층 (The Link Layer and LANs) 네트워크 장비 Repeater : L1 계층 물리계층에서 네트워크를 구성하는데 사용 약해진 신호를 재생성 (강하게 또는 복원) 통신 선을 연장하는 효과 Hub : L1 계층 연결된 모든 호스트에게 전달 [주소 인식 불가] Bridge : L2계층 리피터 기능과 Filtering 기능을 가짐 목적지 주소(Mac주소)를 검사해서 프레임을 전달할 포터(h/w)를 결정 포트와 주소를 연결할 테이블 존재 네트워크와 네트워크를 연결 (LAN 연장) 네트워크를 분리 Switching Hub : L2 계층 목적지 주소를 인식, 해당 목적지 포터로만 전달 LAN에 많이 사용 라우터 : L3 계층 IP 주소로 목적지에 패킷 전달 L3 스위치도 같은 기능 Backbone 장치 여러 네트워크(LAN)를 연결해 주는 장치 백본.. 2023. 6. 6.
Chapter 5 네트워크 계층 (The Control Plane) 5.1 intriduction Control Plane은 두형태가 존재한다. 1. 전통적 방식인 per-router control -> 라우터마다 라우팅 알고리즘이 구현되어 있는 상태 2. 최근방식인 logically centralized control -> software defined networking (SDN) Per-router control 라우터들이 개별적으로 Routing Algorithm을 수행하며 정보를 주고받는다. 그리고 라우터별로 forwarding table을 유지하고 있다. 이것은 네비게이션과 비슷하다. 최단경로 또는 최저비용 또는 가장 혼잡하지 않는 경로를 알려준다. 즉 어떤 목적에 따라 경로를 정하는 것이다. 라우터에서도 똑같이 목적에 따라 Routing Algorithm을 .. 2023. 6. 5.