<?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>Remove on Sobamemil</title>
    <link>https://blog.sobamemil.com/en/tags/remove/</link>
    <description>Recent content in Remove 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:07:40 +0900</lastBuildDate>
    <atom:link href="https://blog.sobamemil.com/en/tags/remove/index.xml" rel="self" type="application/rss+xml" />
    <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>
  </channel>
</rss>
