벡터 5

벡터에서 값으로 index찾기

방법 1. 찾고자 하는 값의 위치에 반복자를 만들어준다. 2. 백터의 첫번째 위치의 반복자( vec.begin() )와 위에서 만든 반복자 사이의 거리( distance() )를 이용하여 index를 구한다 예시 코드 - 4의 index를 찾고싶을때 #include #include #include using namespace std; int main() { vector vec = { 1,2,3,4,5,6,7 }; //찾고자하는 값의 반복자를 정의한다 vector::iterator iter = find(vec.begin(), vec.end(), 4); //첫인덱스부터 위에서 찾은반복자 사이의거리를 이용하여 index를 찾는다 int index = distance(vec.begin(), iter); cout

c++ 자료형

1. 큐 함수 기능 q.front() 가장 먼저 들어간 원소 리턴 q.back() 가장 마지막에 들어간 원소 리턴 q.push(value) 값을 추가 q.empty() 비어있으면 1 q.size() 내부 값의 개수 리턴 q.pop() front값 삭제 2. 스택 #include stack mystack; stack mystack2; //스택안에 벡터 mystack.pop() // 스택의 끝 값 삭제 mystack.push(5) // 스택 삽입 a=mystack.top() // 스택의 끝 값 return 함수 기능 s.top() 가장 마지막에 들어간 원소 리턴 s.push(value) 값을 추가 s.empty() 비어있으면 1 s.size() 내부 값의 개수 리턴 s.pop() top값 삭제 3. dequ..

벡터에 요소있는지 확인

* vector에서 value가 있는 반복자를 리턴하는 함수(만약 value가 없다면 vector.end()까지 수행) #include vector::iterator iter; iter=find(vector.begin(),vector.end(),value); //만약 value 없다면 런타임에러 따라서 다음과 같은 식으로 value가 존재할 때 1, 없을때 0을 반환하게 할 수 있다. find(vector.begin(),vector.end(),value) != vector.end() 이는 파이썬에서 더보기 value in L 와 같다 ​

[백준]1007 벡터매칭 #벡터

1. 풀이 처음엔 N개의 점을 모두 사용하여 N/2개의 선분을 만들었을 때 선분의 합이 최소가 되는 경우를 구해야 한다고 생각했다. 따라서 nC2*n-2C2*n-4C2...*4C2*2C2의 경우를 생각했었다. 하지만 문제에서 요구하는것은 "벡터의합의 길이"이다. ​ 즉 4개의 점 (x1,y1),(x2,y2),(x3,y3),(x4,y4) 가 있을 때 (x_a+x_b -x_c-x_d , y_a+y_b-y_c-y_d )의 길이의 최솟값을 구하면 된다. ​ 따라서 모든점의 개수(N개)중 시작점의 개수(N//2)를 뽑는 경우(나머지는 자동으로 도착점이 된다)는 nCn//2 이므로 해당 경우를 완전탐색하면 답이 된다. ​ 2.소스코드 import sys from itertools import combinations..

알고리즘/수학 2020.06.16