<?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>Vector on Sobamemil</title>
    <link>https://blog.sobamemil.com/en/tags/vector/</link>
    <description>Recent content in Vector 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>Wed, 11 Mar 2020 17:04:39 +0900</lastBuildDate>
    <atom:link href="https://blog.sobamemil.com/en/tags/vector/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>C&#43;&#43; Programming Ch.10 Exercise 16 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/126-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-16%EB%B2%88/</link>
      <pubDate>Wed, 11 Mar 2020 17:04:39 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/126-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-16%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;vector&amp;lt;Shape*&amp;gt; v;를 이용하여 간단한 그래픽 편집기를 콘솔 바탕으로 만들어보자.&lt;/p&gt;
&lt;p&gt;생성된 도형 객체를 v에 삽입하고 관리하라. 9장 Exercise Problem 10번의 힌트를 참고하라.&lt;/p&gt;
&lt;p&gt;Shape과 Circle, Line, Rect 클래스는 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/126/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://sobamemil.tistory.com/17&#34;&gt;2019/11/26 - [C++/명품 C++ programming] - 명품 C++ programming Exercise Problem 9장 10번&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[명품 C++ programming Exercise Problem 9장 10번&lt;/p&gt;
&lt;p&gt;Problem: 간단한 그래픽 편집기를 콘솔 바탕으로 만들어보자. 그래픽 편집기의 기능은 &amp;quot;삽입&amp;quot;, &amp;quot;삭제&amp;quot;, &amp;quot;모두보기&amp;quot;, &amp;quot;종료&amp;quot; 의 4가지이고, 실행 과정은 다음과 같다. Objective &amp;amp; Hints: 추상 클래스, 상속 종합 응용 S..&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.10 Exercise 15 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/125-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-15%EB%B2%88/</link>
      <pubDate>Wed, 11 Mar 2020 15:11:10 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/125-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-15%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;vector를 이용하여 아래 Circle 클래스의 객체를 삽입하고 삭제하는 프로그램을 작성하라.&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&lt;/td&gt;
          &lt;td&gt;class Circle {  string name; // 이름  int radius; // 반지름  public:  Circle(int radius, string name) {  this-&amp;gt;radius = radius; this-&amp;gt;name = name;  }  double getArea() { return 3.14*radius*radius; }  string getName() { return name; }  };&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/125/img_1.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.10 Exercise 12 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/122-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-12%EB%B2%88/</link>
      <pubDate>Tue, 10 Mar 2020 20:28:33 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/122-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-12%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Open Challenge를 수정하여 사용자가 어휘를 삽입할 수 있도록 기능을 추가하라.&lt;/p&gt;
&lt;p&gt;Execution Result는 다음과 같다.&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/122/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;vector 컨테이너의 종합 응용 연습&lt;/p&gt;
&lt;p&gt;랜덤 정수를 방생시키기 위해 다음 두 라인의 코드가 필요하며, &lt;ctime&gt;과 &lt;cstdlib&gt;를 include 해야 합니다.&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&lt;/td&gt;
          &lt;td&gt;srand((unsigned)time(0)); // 시작할 때마다, 다른 랜덤수를 발생시키기 위한 seed 설정  int n = rand(); // 0에서 RAND_MAX(32767) 사이의 랜덤한 정수가 n에 발생&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&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  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99  100  101  102  103&lt;/td&gt;
          &lt;td&gt;#include &lt;iostream&gt;  #include &lt;vector&gt;  #include &lt;ctime&gt;  #include &lt;cstdlib&gt;  using namespace std;    class Word {  string engWord, korWord;  public:  Word(string engWord=0, string korWord=0){  this-&amp;gt;engWord = engWord;  this-&amp;gt;korWord = korWord;  }  void inputWord(string engWord, string korWord){  this-&amp;gt;engWord = engWord;  this-&amp;gt;korWord = korWord;  }  string getEngWord(){ return engWord; }  string getKorWord(){ return korWord; }  };    void inputWord(vector&lt;Word&gt; &amp;amp;v) {  cout &amp;lt;&amp;lt; &amp;quot;영어 단어에 exit을 입력하면 입력 끝\n&amp;quot;;  string engWord, korWord;    while(true){  cout &amp;lt;&amp;lt; &amp;quot;영어 &amp;gt;&amp;gt;&amp;quot;; cin &amp;gt;&amp;gt; engWord;  if(engWord == &amp;quot;exit&amp;quot;)  break;  cout &amp;lt;&amp;lt; &amp;quot;한글 &amp;gt;&amp;gt;&amp;quot;; cin &amp;gt;&amp;gt; korWord;  v.push_back(Word(engWord, korWord));  }  }    void gameStart(vector&lt;Word&gt; &amp;amp;v) {  srand((unsigned)time(0));  int num;    cout &amp;lt;&amp;lt; &amp;quot;영어 어휘 테스트를 시작합니다. 1~4 외 다른 입력시 종료.\n&amp;quot;;    while(true){  int randNum = rand()%v.size();  cout &amp;lt;&amp;lt; v.at(randNum).getEngWord() &amp;lt;&amp;lt; &amp;quot;?\n&amp;quot;;  string ex[4] = &amp;quot; &amp;quot;;  int tmp = rand()%4;  ex[tmp] = v.at(randNum).getKorWord();  for(int i=0; i&amp;lt;4; i++){  if(tmp == i)  continue;  while(true){ // 중복되는 숫자가 없게 처리  int numChosen = rand()%v.size();  if(ex[0]!=v.at(numChosen).getKorWord() &amp;amp;&amp;amp; ex[1]!=v.at(numChosen).getKorWord() &amp;amp;&amp;amp;  ex[2]!=v.at(numChosen).getKorWord() &amp;amp;&amp;amp; ex[3]!=v.at(numChosen).getKorWord()){  ex[i] = v.at(numChosen).getKorWord();  break;  }  }  }  for(int i=0; i&amp;lt;4; i++)  cout &amp;lt;&amp;lt; &amp;quot;(&amp;quot; &amp;lt;&amp;lt; i+1 &amp;lt;&amp;lt; &amp;quot;) &amp;quot; &amp;lt;&amp;lt; ex[i] &amp;lt;&amp;lt; &#39; &#39;;  cout &amp;lt;&amp;lt; &amp;quot;:&amp;gt;&amp;quot;;  cin &amp;gt;&amp;gt; num; // 숫자만 입력  if(num == -1&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.10 Exercise 11 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/121-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-11%EB%B2%88/</link>
      <pubDate>Tue, 10 Mar 2020 19:14:39 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/121-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-11%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;책의 년도, 책이름, 저자 이름을 담은 Book 클래스를 만들고, vector&lt;Book&gt; v;로 생성한 벡터를 이용하여 책을 입고하고, 저자와 년도로 검색하는 프로그램을 작성하라.&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/121/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;vector에 객체의 삽입, 검색 응용 연습&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  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63&lt;/td&gt;
          &lt;td&gt;#include&lt;iostream&gt;  #include&lt;vector&gt;  #include&lt;string&gt;  using namespace std;    class Book{  int year;  string b_name;  string p_name;  public:  void set(int year, string b_name, string p_name){  this-&amp;gt;year = year; this-&amp;gt;b_name = b_name; this-&amp;gt;p_name = p_name;  }  string getP(){  return p_name;  }  int getY(){  return year;  }  void show(){  cout &amp;lt;&amp;lt; year &amp;lt;&amp;lt; &amp;quot;년도, &amp;quot; &amp;lt;&amp;lt; b_name &amp;lt;&amp;lt; &amp;quot;, &amp;quot; &amp;lt;&amp;lt; p_name &amp;lt;&amp;lt; endl;  }  };    int main() {  vector&lt;Book&gt; v;  Book b;  int year;  string b_name;  string p_name;    cout &amp;lt;&amp;lt; &amp;quot;입고할 책을 입력하세요. 년도에 -1을 입력하면 입고를 종료합니다.\n&amp;quot;;    while(true){  cout &amp;lt;&amp;lt; &amp;quot;년도&amp;gt;&amp;gt;&amp;quot;;  cin &amp;gt;&amp;gt; year;  if(year==-1)  break;  fflush(stdin);  cout &amp;lt;&amp;lt; &amp;quot;책이름&amp;gt;&amp;gt;&amp;quot;;  getline(cin, b_name);  cout &amp;lt;&amp;lt; &amp;quot;저자&amp;gt;&amp;gt;&amp;quot;;  getline(cin, p_name);    b.set(year, b_name, p_name);  v.push_back(b);  }    cout &amp;lt;&amp;lt; &amp;quot;총 입고된 책은 &amp;quot; &amp;lt;&amp;lt; v.size() &amp;lt;&amp;lt; &amp;quot;권 입니다.\n&amp;quot;;  cout &amp;lt;&amp;lt; &amp;quot;검색하고자 하는 저자 이름을 입력하세요&amp;gt;&amp;gt;&amp;quot;;  fflush(stdin);  getline(cin, p_name);  for(int i=0; i&amp;lt;v.size(); i++){  if(v[i].getP() == p_name)  v[i].show();  }  cout &amp;lt;&amp;lt; &amp;quot;검색하고자 하는 년도를 입력하세요&amp;gt;&amp;gt;&amp;quot;;  cin &amp;gt;&amp;gt; year;  for(int i=0; i&amp;lt;v.size(); i++){  if(v[i].getY() == year)  v[i].show();  }  }&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 10 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/120-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-10%EB%B2%88/</link>
      <pubDate>Tue, 10 Mar 2020 18:07:00 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/120-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-10%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;나라의 수도 맞추기 게임에 vector를 활용해보자. 나라 이름(nation)과 수도(capital) 문자열로 구성된 Nation 클래스를 만들고, vector&lt;Nation&gt; v;로 생성한 벡터를 이용하여 나라 이름과 수도 이름을 삽입할 수도 있고 랜덤하게 퀴즈를 볼 수도 있다.&lt;/p&gt;
&lt;p&gt;프로그램 내에서 벡터에 Nation 객체를 여러 개 미리 삽입하여 퀴즈를 보도록 하라.&lt;/p&gt;
&lt;p&gt;실행 화면은 다음과 같으며, 저자는 9개 나라의 이름과 수도를 미리 프로그램에서 삽입하였다.&lt;/p&gt;
&lt;p&gt;문자열은 string 클래스를 이용하라.&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/120/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;vector에 객체의 삽입, 검색 응용 연습&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; Programming Ch.10 Exercise 9 Solution</title>
      <link>https://blog.sobamemil.com/en/posts/119-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-9%EB%B2%88/</link>
      <pubDate>Tue, 10 Mar 2020 17:50:23 +0900</pubDate>
      <guid>https://blog.sobamemil.com/en/posts/119-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-9%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;STL의 vector 클래스를 이용하는 간단한 프로그램을 작성해보자. vector 객체를 생성하고, 키보드로부터 정수를 입력받을 때마다 정수를 벡터에 삽입하고 지금까지 입력된 수와 평균을 출력한느 프로그램을 작성하라.&lt;/p&gt;
&lt;p&gt;0을 입력하면 프로그램이 종료된다.&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/119/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;vector 컨테이너 활용 연습&lt;/p&gt;
&lt;p&gt;정수만 다루는 벡터이므로 vector&lt;int&gt; v;를 이용하면 된다. iterator를 사용할 필요는 없다.&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&lt;/td&gt;
          &lt;td&gt;#include &lt;iostream&gt;  #include &lt;vector&gt;  using namespace std;    int main() {  vector&lt;int&gt; v;  double sum=0;  while(true){  int tmp;  cout &amp;lt;&amp;lt; &amp;quot;정수를 입력하세요(0을 입력하면 종료)&amp;gt;&amp;gt;&amp;quot;;  cin &amp;gt;&amp;gt; tmp;  if(!tmp) break; //입력한 정수가 0이면 종료  v.push_back(tmp); // 입력한 정수가 0이 아니면 v에 삽입  for(int i=0; i&amp;lt;v.size(); i++) // vector v의 모든 원소 출력  cout &amp;lt;&amp;lt; v.at(i) &amp;lt;&amp;lt; &#39; &#39;;  cout &amp;lt;&amp;lt; endl;  sum += tmp;  cout &amp;lt;&amp;lt; &amp;quot;평균 = &amp;quot; &amp;lt;&amp;lt; sum/v.size() &amp;lt;&amp;lt; endl;  }  }&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>
