<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://sirokujira.com/wiki/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://sirokujira.com/wiki/wiki/feed.php">
        <title>白くじらのWiki Cpp</title>
        <description></description>
        <link>https://sirokujira.com/wiki/wiki/</link>
        <image rdf:resource="https://sirokujira.com/wiki/wiki/lib/tpl/bootstrap3/images/favicon.ico" />
       <dc:date>2026-05-15T20:05:58+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://sirokujira.com/wiki/wiki/doku.php/Cpp/vector%E3%81%AE%E8%BF%94%E5%8D%B4?rev=1744402503&amp;do=diff"/>
                <rdf:li rdf:resource="https://sirokujira.com/wiki/wiki/doku.php/Cpp/%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%83%AD%E3%83%BC?rev=1744402503&amp;do=diff"/>
                <rdf:li rdf:resource="https://sirokujira.com/wiki/wiki/doku.php/Cpp/%E6%A7%8B%E9%80%A0%E4%BD%93?rev=1744402503&amp;do=diff"/>
                <rdf:li rdf:resource="https://sirokujira.com/wiki/wiki/doku.php/Cpp/%E9%80%A3%E6%83%B3%E9%85%8D%E5%88%97?rev=1744402503&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://sirokujira.com/wiki/wiki/lib/tpl/bootstrap3/images/favicon.ico">
        <title>白くじらのWiki</title>
        <link>https://sirokujira.com/wiki/wiki/</link>
        <url>https://sirokujira.com/wiki/wiki/lib/tpl/bootstrap3/images/favicon.ico</url>
    </image>
    <item rdf:about="https://sirokujira.com/wiki/wiki/doku.php/Cpp/vector%E3%81%AE%E8%BF%94%E5%8D%B4?rev=1744402503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-12T05:15:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vectorの返却</title>
        <link>https://sirokujira.com/wiki/wiki/doku.php/Cpp/vector%E3%81%AE%E8%BF%94%E5%8D%B4?rev=1744402503&amp;do=diff</link>
        <description>vectorの返却

参考：C++でオブジェクトを返す関数を書いてもいいのか問題 - Gobble up pudding

vectorを使った変数のスコープについてよくわからなくなったため、備忘録。

参考サイトから、vectorを使った関数の返り値の扱い方は下記でよい。



std::vector&lt;int&gt; foo(){
  std::vector&lt;int&gt; x = {1,2,3};
  ...(xの処理)
  return x;
}

std::vector&lt;int&gt; vec = foo();</description>
    </item>
    <item rdf:about="https://sirokujira.com/wiki/wiki/doku.php/Cpp/%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%83%AD%E3%83%BC?rev=1744402503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-12T05:15:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>オーバーフロー</title>
        <link>https://sirokujira.com/wiki/wiki/doku.php/Cpp/%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%83%AD%E3%83%BC?rev=1744402503&amp;do=diff</link>
        <description>オーバーフロー

参考：INT32-C. 符号付き整数演算がオーバーフローを引き起こさないことを保証する

乗算の場合



void func(signed int si_a, signed int si_b) {
  signed int result;
  if (si_a &gt; 0) {  
    if (si_b &gt; 0) {  
      if (si_a &gt; (INT_MAX / si_b)) {
        /* エラー処理 */
      }
    } else { /* si_a は正、 si_b はゼロ以下 */
      if (si_b &lt; (INT_MIN / si_a)) {
        /* エラー処理 */
      }
    } /* si_a は正、si_b はゼロ以下 */
  } else { /* si_a はゼロ以下 */
    if (si_b &gt; 0) { /* si_a is nonpositive, si_b is positive */
      if (si_a &lt; (INT_MIN / si_b)) {…</description>
    </item>
    <item rdf:about="https://sirokujira.com/wiki/wiki/doku.php/Cpp/%E6%A7%8B%E9%80%A0%E4%BD%93?rev=1744402503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-12T05:15:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>構造体</title>
        <link>https://sirokujira.com/wiki/wiki/doku.php/Cpp/%E6%A7%8B%E9%80%A0%E4%BD%93?rev=1744402503&amp;do=diff</link>
        <description>構造体

参考：structのtypedef, CとC++での違い - minus9d's diary

C言語との違いは、typedefを使わなくても、構造体の変数名がそのまま使える点。



[C言語]
struct data_t {
  int data1;
  int data2;
};

struct data_t d;

[C++言語]

struct data_t {
  int data1;
  int data2;
};

data_t d;</description>
    </item>
    <item rdf:about="https://sirokujira.com/wiki/wiki/doku.php/Cpp/%E9%80%A3%E6%83%B3%E9%85%8D%E5%88%97?rev=1744402503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-12T05:15:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>連想配列</title>
        <link>https://sirokujira.com/wiki/wiki/doku.php/Cpp/%E9%80%A3%E6%83%B3%E9%85%8D%E5%88%97?rev=1744402503&amp;do=diff</link>
        <description>連想配列

参考：

std::mapまとめ - Qiita

C++ 連想配列クラス std::map 入門

std::mapクラスを使用すれば、連想配列を利用することができる。

内部の実装は二分木であるため、探索時の計算量はO(logN)となる。</description>
    </item>
</rdf:RDF>
