<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=STL%2Fsearch</id>
	<title>STL/search - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=STL%2Fsearch"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=STL/search&amp;action=history"/>
	<updated>2026-05-14T16:17:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=STL/search&amp;diff=38891&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:27, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=STL/search&amp;diff=38891&amp;oldid=prev"/>
		<updated>2021-02-07T05:27:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Search =&lt;br /&gt;
* 컨테이너에서 값을 찾는다. 찾으면 1, 못찾으면 0을 리턴해준다.&lt;br /&gt;
* STL에서는 최적의 검색 기능을 자랑하는(θ(logn)) Binary Search를 제공해준다.&lt;br /&gt;
* Binary Search가 무엇이냐? 사람이 사전을 찾을때와 비슷하다고 보면 된다. &lt;br /&gt;
&lt;br /&gt;
## 사전의 반을 펼친다.&lt;br /&gt;
** 만약에 내가 찾는값이 그것보다 뒤에 있으면 나머지 뒷부분의 반을 펼친다.&lt;br /&gt;
** 그것 보단 앞에 자료가 존재하면 처음 펼친 곳과 지금 펼친곳의 가운데를 펼친다.  &lt;br /&gt;
&lt;br /&gt;
 이 과정을 재귀적으로 하면 값을 찾을수 있다. 이런 탐색 방법을 Binary Search 라고 부른다. 이것이 성립하려면, 원소들이 정렬되어 있고, 임의접근(random)이 가능해야 한다. 정렬이 안되어 2,3 번의 과정을 진생할수 없다.&lt;br /&gt;
   &lt;br /&gt;
* STL에서는 최적의 조합으로, sort + binary_search를 추천해준다. 예제를 보자.&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;vector&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;algorithm&amp;amp;gt;	// search 알고리즘 쓰기 위한것&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	int ar[10] = {45,12,76,43,75,32,85,32,19,98};	&lt;br /&gt;
 &lt;br /&gt;
 	vector&amp;amp;lt;int&amp;amp;gt; v(&amp;amp;amp;ar[0], &amp;amp;amp;ar[10]);		&lt;br /&gt;
 	sort(v.begin(), v.end());&lt;br /&gt;
 &lt;br /&gt;
 	if(binary_search(v.begin(), v.end(), 85))&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;찾았다.&amp;quot;;&lt;br /&gt;
 	else &lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;못찾았다.&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
* sort해준다음 binary_search()의 인자로는 시작부분, 끝부분, 찾고자 하는 원소. 이렇게 넣어주면 된다. &lt;br /&gt;
&lt;br /&gt;
* list 컨테이너와 같이 임의접근 iterator를 지원하지 않는 컨테이너에는 적용할 수 없다.&lt;br /&gt;
----&lt;br /&gt;
[[STL]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>