<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://mochiu.net/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E9%80%A3%E6%83%B3%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A</id>
	<title>C++の基礎 - 連想コンテナ - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://mochiu.net/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E9%80%A3%E6%83%B3%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A"/>
	<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=C%2B%2B%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E9%80%A3%E6%83%B3%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A&amp;action=history"/>
	<updated>2026-07-24T14:25:22Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://mochiu.net/index.php?title=C%2B%2B%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E9%80%A3%E6%83%B3%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A&amp;diff=9733&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == &lt;code&gt;std::set&lt;/code&gt;は、ユニークな要素を格納する連想コンテナの一種であり、要素自身がキーとなる。&lt;br&gt; 連想コンテナは、特にそれらキーによる要素アクセスが効率的になるよう設計されたコンテナである。&lt;br&gt; (要素への相対位置または絶対位置によるアクセスが効率的であるシーケンシャルコンテナとは異なる)&lt;br&gt; &lt;br&gt; 内部的には、&lt;code&gt;std…」</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=C%2B%2B%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E9%80%A3%E6%83%B3%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A&amp;diff=9733&amp;oldid=prev"/>
		<updated>2024-03-22T15:40:04Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == &amp;lt;code&amp;gt;std::set&amp;lt;/code&amp;gt;は、ユニークな要素を格納する連想コンテナの一種であり、要素自身がキーとなる。&amp;lt;br&amp;gt; 連想コンテナは、特にそれらキーによる要素アクセスが効率的になるよう設計されたコンテナである。&amp;lt;br&amp;gt; (要素への相対位置または絶対位置によるアクセスが効率的であるシーケンシャルコンテナとは異なる)&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 内部的には、&amp;lt;code&amp;gt;std…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
&amp;lt;code&amp;gt;std::set&amp;lt;/code&amp;gt;は、ユニークな要素を格納する連想コンテナの一種であり、要素自身がキーとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
連想コンテナは、特にそれらキーによる要素アクセスが効率的になるよう設計されたコンテナである。&amp;lt;br&amp;gt;&lt;br /&gt;
(要素への相対位置または絶対位置によるアクセスが効率的であるシーケンシャルコンテナとは異なる)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
内部的には、&amp;lt;code&amp;gt;std::set&amp;lt;/code&amp;gt;内の要素は、コンテナの構築時に設定された狭義の弱順序基準にしたがって小さいものから大きいものへとソートされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;std::set&amp;lt;/code&amp;gt;は一般的に、二分木として実装される。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、連想コンテナである&amp;lt;code&amp;gt;std::set&amp;lt;/code&amp;gt;の主な特性は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユニークな要素の値&lt;br /&gt;
*: 互いに等しい2つの要素が&amp;lt;code&amp;gt;std::set&amp;lt;/code&amp;gt;に格納されることはない。&amp;lt;br&amp;gt;複数の等しい値を許す同様の連想コンテナは、&amp;lt;code&amp;gt;std::multiset&amp;lt;/code&amp;gt;を参照すること。&lt;br /&gt;
* 要素の値はキーそのものである。&lt;br /&gt;
*: キーを使用して要素にアクセスする。&lt;br /&gt;
*: キーとは異なる値へマップする同様の連想コンテナ (連想配列) は、&amp;lt;code&amp;gt;std::map&amp;lt;/code&amp;gt;を参照すること。&lt;br /&gt;
* 要素は常に狭義の弱順序に従う。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;std::set&amp;lt;/code&amp;gt;は、双方向イテレータをサポートする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 値の許可 ==&lt;br /&gt;
以下の例では、最初に許可された値のリストを&amp;lt;code&amp;gt;std::set&amp;lt;/code&amp;gt;として定義している。&amp;lt;br&amp;gt;&lt;br /&gt;
このデータ構造を使用する理由は、要素の検索が非常に効率的であるためである。 (検索の時間複雑度は、&amp;lt;u&amp;gt;O(log n)&amp;lt;/u&amp;gt;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
その後、任意の値がこの連想コンテナに含まれているかどうかを確認するため、&amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;メソッドを使用している。&amp;lt;br&amp;gt;&lt;br /&gt;
値が含まれていない場合は、50を代入している。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
 #include &amp;lt;set&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // 許可された値のセットを定義&lt;br /&gt;
 const std::set&amp;lt;int&amp;gt; allowedValues = {10, 20, 30, 40, 45, 50, 55, 60, 70};&lt;br /&gt;
 &lt;br /&gt;
 // 任意のint型の変数&lt;br /&gt;
 int hoge = 100;&lt;br /&gt;
 &lt;br /&gt;
 // 任意のint型の変数の値において、許可された値のセットに含まれていない場合は50を代入&lt;br /&gt;
 if (allowedValues.find(hoge) == allowedValues.end()) {&lt;br /&gt;
    hoge = 50;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:C++]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>