<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>템플릿 on Sobamemil</title>
    <link>https://blog.sobamemil.com/en/tags/%ED%85%9C%ED%94%8C%EB%A6%BF/</link>
    <description>Recent content in 템플릿 on Sobamemil</description>
    <image>
      <title>Sobamemil</title>
      <url>https://blog.sobamemil.com/images/og-image.png</url>
      <link>https://blog.sobamemil.com/images/og-image.png</link>
    </image>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 09 Mar 2020 16:21:24 +0900</lastBuildDate>
    <atom:link href="https://blog.sobamemil.com/en/tags/%ED%85%9C%ED%94%8C%EB%A6%BF/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>C&#43;&#43; Programming Ch.10 Exercise 7 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/117-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-7%EB%B2%88/</link>
      <pubDate>Mon, 09 Mar 2020 16:21:24 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/117-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-7%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;다음 프로그램은 컴파일 오류가 발생한다. 소스의 어디에서 왜 컴파일 오류가 발생하는가?&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24&lt;/td&gt;
          &lt;td&gt;#include &lt;iostream&gt;  using namespace std;    class Circle {  int radius;  public:  Circle(int radius = 1) { this-&amp;gt;radius = radius; }  int getRadius() { return radius; }  };    template &lt;class T&gt;  T bigger(T a, T b) { // 두 개의 매개 변수를 비교하여 큰 값을 리턴  if (a &amp;gt; b) return a;  else return b;  }    int main() {  int a = 20, b = 50, c;  c = bigger(a, b);  cout &amp;lt;&amp;lt; &amp;quot;20과 50중 큰 값은 &amp;quot; &amp;lt;&amp;lt; c &amp;lt;&amp;lt; endl;  Circle waffle(10), pizza(20), y;  y = bigger(waffle, pizza);  cout &amp;lt;&amp;lt; &amp;quot;waffle과 pizza 중 큰 것의 반지름은 &amp;quot; &amp;lt;&amp;lt; y.getRadius() &amp;lt;&amp;lt; endl;  }&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;Execution Result:&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.10 Exercise 6 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/116-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-6%EB%B2%88/</link>
      <pubDate>Mon, 09 Mar 2020 16:07:40 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/116-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-6%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;다음 함수는 매개 변수로 주어진 int 배열 src에서 배열 minus에 들어있는 같은 정수를 모두 삭제한 새로운 int 배열을 동적으로 할당받아 리턴한다.&lt;/p&gt;
&lt;p&gt;retSize는 remove() 함수의 Execution Result를 리턴하는 배열의 크기를 전달받는다.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;int * remove(int src[], int sizeSrc, int minus[], int sizeMinus, int&amp;amp; resSize);&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;템플릿을 이용하여 remove를 일반화하라.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Execution Result:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/116/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Objective &amp;amp; Hints:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;함수의 일반화에 대한 이해, 템플릿 함수 만들기&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41&lt;/td&gt;
          &lt;td&gt;#include &lt;iostream&gt;  using namespace std;    template &lt;class T&gt;  T* remove(T src[], int sizeSrc, T minus[], int sizeMinus, int &amp;amp; retsize){  int j;  T* tmpArray = new T[sizeSrc];  for(int i=0; i&amp;lt;sizeSrc; i++){  for(j=0; j&amp;lt;sizeMinus; j++){  if(src[i] == minus[j]){ // src의 원소와 minus의 원소가 같으면 j의 값을 하나 내린 후 break  --j;  break;  }  }  if(j==sizeMinus){ // j==sizeMinus 라는건 src와 minus에 같은 원소가 없어 중간에 break 되지 않은 경우  tmpArray[retsize] = src[i]; // src[i]를 동적 할당 하여 생성한 tmpArray에 삽입  retsize++; // return 할 size의 값을 하나 올려줌  }  }  return tmpArray;  }    int main() {  int a[] = { 1,2,3,4,5,6,7,8,9,10 };  int b[] = { 5,6,7,8,9 };  int size=0;  int *p = remove(a, 10, b,5, size);  for (int i = 0; i &amp;lt; size; ++i)  cout &amp;lt;&amp;lt; p[i] &amp;lt;&amp;lt; &#39; &#39;;  cout &amp;lt;&amp;lt; endl;  delete[] p;  size = 0;  char c[] = { &#39;a&#39;,&#39;b&#39;,&#39;i&#39;,&#39;m&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,};  char d[] = { &#39;k&#39;,&#39;i&#39;,&#39;m&#39;,&#39;n&#39;,&#39;u&#39; };  char *q = remove(c, 7, d, 5,size);  for (int i = 0; i &amp;lt; size; ++i)  cout &amp;lt;&amp;lt; q[i] &amp;lt;&amp;lt; &#39; &#39;;  cout &amp;lt;&amp;lt; endl;  delete[] q;    }&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;Explanation:&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.10 Exercise 4 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/114-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-4%EB%B2%88/</link>
      <pubDate>Mon, 09 Mar 2020 15:48:38 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/114-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-4%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;배열에서 원소를 검색하는 search() 함수를 템플릿으로 작성하라.&lt;/p&gt;
&lt;p&gt;search()의 첫 번째 매개 변수는 검색하고자 하는 원소 값이고, 두 번째 매개 변수는 배열이며, 세 번째 매개 변수는 배열의 개수이다.&lt;/p&gt;
&lt;p&gt;search() 함수가 검색에 성공하면 true를, 아니면 false를 리턴한다.&lt;/p&gt;
&lt;p&gt;search()의 호출 사례는 다음과 같다.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3&lt;/td&gt;
          &lt;td&gt;int x[] = {1, 10, 100, 5, 4};  if(search(100, x, 5)) cout &amp;lt;&amp;lt; &amp;quot;100이 배열 x에 포함되어 있다&amp;quot;; // 이 cout 실행  else cout &amp;lt;&amp;lt; &amp;quot;100이 배열 x에 포함되어 있지 않다&amp;quot;;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;Execution Result:&lt;/b&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.10 Exercise 3 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/113-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-3%EB%B2%88/</link>
      <pubDate>Mon, 09 Mar 2020 15:45:01 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/113-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-3%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;배열의 원소를 반대 순서로 뒤집는 reverseArray() 함수를 템플릿으로 작성하라.&lt;/p&gt;
&lt;p&gt;reverseArray()의 첫 번째 매개 변수는 배열에 대한 포인터이며 두 번째 매개 변수는 배열의 개수이다.&lt;/p&gt;
&lt;p&gt;reverseArray()의 호출 사례는 다음과 같다.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4&lt;/td&gt;
          &lt;td&gt;int x[] = { 1, 10, 100, 5, 4};  reverseArray(x, 5);  for(int i=0; i&amp;lt;5; i++)  cout &amp;lt;&amp;lt; x[i] &amp;lt;&amp;lt; &#39; &#39;; // 4 5 100 10 1이 출력된다.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;b&gt;Execution Result:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/113/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Objective &amp;amp; Hints:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;템플릿 함수 만들기&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
