Documentation for a8af29bf65

This commit is contained in:
github-actions
2023-01-31 19:52:24 +00:00
parent c33ecc7aac
commit a87e2fa7cb
258 changed files with 4559 additions and 2699 deletions

View File

@@ -0,0 +1,422 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: machine_learning::k_nearest_neighbors::Knn Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="../../d7/dc7/classmachine__learning_1_1k__nearest__neighbors_1_1_knn-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">machine_learning::k_nearest_neighbors::Knn Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>K-Nearest Neighbors (<a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html" title="K-Nearest Neighbors (Knn) class using Euclidean distance as distance metric.">Knn</a>) class using Euclidean distance as distance metric.
<a href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for machine_learning::k_nearest_neighbors::Knn:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d58/classmachine__learning_1_1k__nearest__neighbors_1_1_knn__coll__graph.svg" width="318" height="242"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a188d29ffcefdb5900a8cd41eccd89200"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a188d29ffcefdb5900a8cd41eccd89200">Knn</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &gt; &amp;X, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;Y)</td></tr>
<tr class="memdesc:a188d29ffcefdb5900a8cd41eccd89200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a new <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html" title="K-Nearest Neighbors (Knn) class using Euclidean distance as distance metric.">Knn</a> object. <br /></td></tr>
<tr class="separator:a188d29ffcefdb5900a8cd41eccd89200"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f5885c40112481ae5b588fe81d7910b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a9f5885c40112481ae5b588fe81d7910b">Knn</a> (const <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp;model)=default</td></tr>
<tr class="separator:a9f5885c40112481ae5b588fe81d7910b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a080f5b1742832a03c1cbba596a48bd1a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a080f5b1742832a03c1cbba596a48bd1a">operator=</a> (const <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp;model)=default</td></tr>
<tr class="separator:a080f5b1742832a03c1cbba596a48bd1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b17dcf17c847f0295b60029512c120e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a4b17dcf17c847f0295b60029512c120e">Knn</a> (<a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a4b17dcf17c847f0295b60029512c120e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac06986d5afddc767ddba4da738f75563"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#ac06986d5afddc767ddba4da738f75563">operator=</a> (<a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp;&amp;)=default</td></tr>
<tr class="separator:ac06986d5afddc767ddba4da738f75563"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe732a33112b457b738f403622d226e5"><td class="memItemLeft" align="right" valign="top"><a id="afe732a33112b457b738f403622d226e5" name="afe732a33112b457b738f403622d226e5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>~Knn</b> ()=default</td></tr>
<tr class="memdesc:afe732a33112b457b738f403622d226e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html" title="K-Nearest Neighbors (Knn) class using Euclidean distance as distance metric.">Knn</a> object. <br /></td></tr>
<tr class="separator:afe732a33112b457b738f403622d226e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62e152db014cd4de675fa906e5ef2861"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a62e152db014cd4de675fa906e5ef2861">predict</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;sample, int k)</td></tr>
<tr class="memdesc:a62e152db014cd4de675fa906e5ef2861"><td class="mdescLeft">&#160;</td><td class="mdescRight">Classify sample. <br /></td></tr>
<tr class="separator:a62e152db014cd4de675fa906e5ef2861"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a16ddc13621eec6ac5f83658b3401a581"><td class="memItemLeft" align="right" valign="top"><a id="a16ddc13621eec6ac5f83658b3401a581" name="a16ddc13621eec6ac5f83658b3401a581"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>X_</b> {}</td></tr>
<tr class="memdesc:a16ddc13621eec6ac5f83658b3401a581"><td class="mdescLeft">&#160;</td><td class="mdescRight">attributes vector <br /></td></tr>
<tr class="separator:a16ddc13621eec6ac5f83658b3401a581"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a209383503fb6c03afac405a80bace964"><td class="memItemLeft" align="right" valign="top"><a id="a209383503fb6c03afac405a80bace964" name="a209383503fb6c03afac405a80bace964"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Y_</b> {}</td></tr>
<tr class="memdesc:a209383503fb6c03afac405a80bace964"><td class="mdescLeft">&#160;</td><td class="mdescRight">labels vector <br /></td></tr>
<tr class="separator:a209383503fb6c03afac405a80bace964"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>K-Nearest Neighbors (<a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html" title="K-Nearest Neighbors (Knn) class using Euclidean distance as distance metric.">Knn</a>) class using Euclidean distance as distance metric. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a188d29ffcefdb5900a8cd41eccd89200" name="a188d29ffcefdb5900a8cd41eccd89200"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a188d29ffcefdb5900a8cd41eccd89200">&#9670;&#160;</a></span>Knn() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">machine_learning::k_nearest_neighbors::Knn::Knn </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>X</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>Y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct a new <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html" title="K-Nearest Neighbors (Knn) class using Euclidean distance as distance metric.">Knn</a> object. </p>
<p>Using lazy-learning approch, just holds in memory the dataset. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">X</td><td>attributes vector </td></tr>
<tr><td class="paramname">Y</td><td>labels vector </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 68</span> : <a class="code hl_variable" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a16ddc13621eec6ac5f83658b3401a581">X_</a>(X), <a class="code hl_variable" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a209383503fb6c03afac405a80bace964">Y_</a>(Y){};</div>
<div class="ttc" id="aclassmachine__learning_1_1k__nearest__neighbors_1_1_knn_html_a16ddc13621eec6ac5f83658b3401a581"><div class="ttname"><a href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a16ddc13621eec6ac5f83658b3401a581">machine_learning::k_nearest_neighbors::Knn::X_</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; X_</div><div class="ttdoc">attributes vector</div><div class="ttdef"><b>Definition:</b> k_nearest_neighbors.cpp:57</div></div>
<div class="ttc" id="aclassmachine__learning_1_1k__nearest__neighbors_1_1_knn_html_a209383503fb6c03afac405a80bace964"><div class="ttname"><a href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a209383503fb6c03afac405a80bace964">machine_learning::k_nearest_neighbors::Knn::Y_</a></div><div class="ttdeci">std::vector&lt; int &gt; Y_</div><div class="ttdoc">labels vector</div><div class="ttdef"><b>Definition:</b> k_nearest_neighbors.cpp:58</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a9f5885c40112481ae5b588fe81d7910b" name="a9f5885c40112481ae5b588fe81d7910b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f5885c40112481ae5b588fe81d7910b">&#9670;&#160;</a></span>Knn() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">machine_learning::k_nearest_neighbors::Knn::Knn </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp;&#160;</td>
<td class="paramname"><em>model</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy Constructor for class <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html" title="K-Nearest Neighbors (Knn) class using Euclidean distance as distance metric.">Knn</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">model</td><td>instance of class to be copied </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a4b17dcf17c847f0295b60029512c120e" name="a4b17dcf17c847f0295b60029512c120e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b17dcf17c847f0295b60029512c120e">&#9670;&#160;</a></span>Knn() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">machine_learning::k_nearest_neighbors::Knn::Knn </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move constructor for class <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html" title="K-Nearest Neighbors (Knn) class using Euclidean distance as distance metric.">Knn</a> </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a080f5b1742832a03c1cbba596a48bd1a" name="a080f5b1742832a03c1cbba596a48bd1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a080f5b1742832a03c1cbba596a48bd1a">&#9670;&#160;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp; machine_learning::k_nearest_neighbors::Knn::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp;&#160;</td>
<td class="paramname"><em>model</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy assignment operator for class <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html" title="K-Nearest Neighbors (Knn) class using Euclidean distance as distance metric.">Knn</a> </p>
</div>
</div>
<a id="ac06986d5afddc767ddba4da738f75563" name="ac06986d5afddc767ddba4da738f75563"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac06986d5afddc767ddba4da738f75563">&#9670;&#160;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp; machine_learning::k_nearest_neighbors::Knn::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a> &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move assignment operator for class <a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html" title="K-Nearest Neighbors (Knn) class using Euclidean distance as distance metric.">Knn</a> </p>
</div>
</div>
<a id="a62e152db014cd4de675fa906e5ef2861" name="a62e152db014cd4de675fa906e5ef2861"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62e152db014cd4de675fa906e5ef2861">&#9670;&#160;</a></span>predict()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int machine_learning::k_nearest_neighbors::Knn::predict </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>sample</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>k</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Classify sample. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">sample</td><td>sample </td></tr>
<tr><td class="paramname">k</td><td>number of neighbors </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>int label of most frequent neighbors </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 103</span> {</div>
<div class="line"><span class="lineno"> 104</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> neighbors;</div>
<div class="line"><span class="lineno"> 105</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::pair&lt;double, int&gt;</a>&gt; distances;</div>
<div class="line"><span class="lineno"> 106</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; this-&gt;<a class="code hl_variable" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a16ddc13621eec6ac5f83658b3401a581">X_</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); ++i) {</div>
<div class="line"><span class="lineno"> 107</span> <span class="keyword">auto</span> current = this-&gt;<a class="code hl_variable" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a16ddc13621eec6ac5f83658b3401a581">X_</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/at.html">at</a>(i);</div>
<div class="line"><span class="lineno"> 108</span> <span class="keyword">auto</span> label = this-&gt;<a class="code hl_variable" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a209383503fb6c03afac405a80bace964">Y_</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/at.html">at</a>(i);</div>
<div class="line"><span class="lineno"> 109</span> <span class="keyword">auto</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/distance.html">distance</a> = <a class="code hl_function" href="../../d4/d3e/k__nearest__neighbors_8cpp.html#ad6ae16e50bb153ebaa7251d0aaa97b69">euclidean_distance</a>(current, sample);</div>
<div class="line"><span class="lineno"> 110</span> distances.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/emplace_back.html">emplace_back</a>(distance, label);</div>
<div class="line"><span class="lineno"> 111</span> }</div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/sort.html">std::sort</a>(distances.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), distances.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>());</div>
<div class="line"><span class="lineno"> 113</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a>; i++) {</div>
<div class="line"><span class="lineno"> 114</span> <span class="keyword">auto</span> label = distances.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/at.html">at</a>(i).second;</div>
<div class="line"><span class="lineno"> 115</span> neighbors.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(label);</div>
<div class="line"><span class="lineno"> 116</span> }</div>
<div class="line"><span class="lineno"> 117</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map&lt;int, int&gt;</a> frequency;</div>
<div class="line"><span class="lineno"> 118</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> neighbor : neighbors) {</div>
<div class="line"><span class="lineno"> 119</span> ++frequency[neighbor];</div>
<div class="line"><span class="lineno"> 120</span> }</div>
<div class="line"><span class="lineno"> 121</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;int, int&gt;</a> predicted;</div>
<div class="line"><span class="lineno"> 122</span> predicted.first = -1;</div>
<div class="line"><span class="lineno"> 123</span> predicted.second = -1;</div>
<div class="line"><span class="lineno"> 124</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; kv : frequency) {</div>
<div class="line"><span class="lineno"> 125</span> <span class="keywordflow">if</span> (kv.second &gt; predicted.second) {</div>
<div class="line"><span class="lineno"> 126</span> predicted.second = kv.second;</div>
<div class="line"><span class="lineno"> 127</span> predicted.first = kv.first;</div>
<div class="line"><span class="lineno"> 128</span> }</div>
<div class="line"><span class="lineno"> 129</span> }</div>
<div class="line"><span class="lineno"> 130</span> <span class="keywordflow">return</span> predicted.first;</div>
<div class="line"><span class="lineno"> 131</span> }</div>
<div class="ttc" id="aat_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/at.html">std::vector::at</a></div><div class="ttdeci">T at(T... args)</div></div>
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/begin.html">std::vector::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
<div class="ttc" id="acomposite__simpson__rule_8cpp_html_a1b74d828b33760094906797042b89442"><div class="ttname"><a href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">numerical_methods::simpson_method::k</a></div><div class="ttdeci">double k(double x)</div><div class="ttdoc">Another test function.</div><div class="ttdef"><b>Definition:</b> composite_simpson_rule.cpp:117</div></div>
<div class="ttc" id="adistance_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a></div><div class="ttdeci">T distance(T... args)</div></div>
<div class="ttc" id="aemplace_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/emplace_back.html">std::vector::emplace_back</a></div><div class="ttdeci">T emplace_back(T... args)</div></div>
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/end.html">std::vector::end</a></div><div class="ttdeci">T end(T... args)</div></div>
<div class="ttc" id="ak__nearest__neighbors_8cpp_html_ad6ae16e50bb153ebaa7251d0aaa97b69"><div class="ttname"><a href="../../d4/d3e/k__nearest__neighbors_8cpp.html#ad6ae16e50bb153ebaa7251d0aaa97b69">machine_learning::k_nearest_neighbors::euclidean_distance</a></div><div class="ttdeci">double euclidean_distance(const std::vector&lt; T &gt; &amp;a, const std::vector&lt; T &gt; &amp;b)</div><div class="ttdoc">Compute the Euclidean distance between two vectors.</div><div class="ttdef"><b>Definition:</b> k_nearest_neighbors.cpp:43</div></div>
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>
<div class="ttc" id="apush_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">std::vector::push_back</a></div><div class="ttdeci">T push_back(T... args)</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
<div class="ttc" id="asort_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/sort.html">std::sort</a></div><div class="ttdeci">T sort(T... args)</div></div>
<div class="ttc" id="aunordered_map_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map</a></div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn_a62e152db014cd4de675fa906e5ef2861_cgraph.svg" width="552" height="439"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>machine_learning/<a class="el" href="../../d4/d3e/k__nearest__neighbors_8cpp.html">k_nearest_neighbors.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d8/d77/namespacemachine__learning.html">machine_learning</a></li><li class="navelem"><b>k_nearest_neighbors</b></li><li class="navelem"><a class="el" href="../../da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html">Knn</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,12 @@
var classmachine__learning_1_1k__nearest__neighbors_1_1_knn =
[
[ "Knn", "da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a188d29ffcefdb5900a8cd41eccd89200", null ],
[ "Knn", "da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a9f5885c40112481ae5b588fe81d7910b", null ],
[ "Knn", "da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a4b17dcf17c847f0295b60029512c120e", null ],
[ "~Knn", "da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#afe732a33112b457b738f403622d226e5", null ],
[ "operator=", "da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a080f5b1742832a03c1cbba596a48bd1a", null ],
[ "operator=", "da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#ac06986d5afddc767ddba4da738f75563", null ],
[ "predict", "da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a62e152db014cd4de675fa906e5ef2861", null ],
[ "X_", "da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a16ddc13621eec6ac5f83658b3401a581", null ],
[ "Y_", "da/d94/classmachine__learning_1_1k__nearest__neighbors_1_1_knn.html#a209383503fb6c03afac405a80bace964", null ]
];

View File

@@ -0,0 +1,16 @@
<map id="machine_learning::k_nearest_neighbors::Knn::predict" name="machine_learning::k_nearest_neighbors::Knn::predict">
<area shape="rect" id="node1" title="Classify sample." alt="" coords="5,213,148,268"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/at.html#" title=" " alt="" coords="233,5,335,31"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/begin.html#" title=" " alt="" coords="422,56,545,81"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/emplace_back.html#" title=" " alt="" coords="196,260,372,285"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/end.html#" title=" " alt="" coords="427,105,540,131"/>
<area shape="rect" id="node6" href="$d4/d3e/k__nearest__neighbors_8cpp.html#ad6ae16e50bb153ebaa7251d0aaa97b69" title="Compute the Euclidean distance between two vectors." alt="" coords="213,181,355,236"/>
<area shape="rect" id="node12" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/push_back.html#" title=" " alt="" coords="207,309,361,335"/>
<area shape="rect" id="node13" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="226,359,342,384"/>
<area shape="rect" id="node14" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/sort.html#" title=" " alt="" coords="249,408,319,433"/>
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/accumulate.html#" title=" " alt="" coords="426,204,541,229"/>
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/back_inserter.html#" title=" " alt="" coords="420,253,547,279"/>
<area shape="rect" id="node9" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/shrink_to_fit.html#" title=" " alt="" coords="420,303,547,343"/>
<area shape="rect" id="node10" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/sqrt.html#" title=" " alt="" coords="448,368,519,393"/>
<area shape="rect" id="node11" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/transform.html#" title=" " alt="" coords="432,155,535,180"/>
</map>

View File

@@ -0,0 +1 @@
13413e6cbd2dd7633621781b649096a7

View File

@@ -0,0 +1,239 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 7.0.6 (20230106.0513)
-->
<!-- Title: machine_learning::k_nearest_neighbors::Knn::predict Pages: 1 -->
<svg width="414pt" height="329pt"
viewBox="0.00 0.00 414.00 329.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 325)">
<title>machine_learning::k_nearest_neighbors::Knn::predict</title>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Classify sample.">
<polygon fill="#999999" stroke="#666666" points="107,-165 0,-165 0,-124 107,-124 107,-165"/>
<text text-anchor="start" x="8" y="-153" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::k</text>
<text text-anchor="start" x="8" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00">_nearest_neighbors::</text>
<text text-anchor="middle" x="53.5" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00">Knn::predict</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/at.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="247.5,-321 170.5,-321 170.5,-302 247.5,-302 247.5,-321"/>
<text text-anchor="middle" x="209" y="-309" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::at</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="#63b8ff" d="M62.2,-165.26C74.63,-196.1 101.97,-253.97 143,-287.5 148.07,-291.65 153.93,-295.11 160,-298"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="158.37,-301.11 168.94,-301.76 161.08,-294.66 158.37,-301.11"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/begin.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="404.5,-283 312.5,-283 312.5,-264 404.5,-264 404.5,-283"/>
<text text-anchor="middle" x="358.5" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::begin</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="#63b8ff" d="M67.24,-165.44C82.31,-188.2 109.6,-223.7 143,-241.5 191.91,-267.56 255.48,-274.24 300.69,-275.2"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="300.51,-278.7 310.55,-275.31 300.59,-271.7 300.51,-278.7"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/emplace_back.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="275,-130 143,-130 143,-111 275,-111 275,-130"/>
<text text-anchor="middle" x="209" y="-118" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::emplace_back</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="#63b8ff" d="M107.33,-136.24C115.59,-134.95 124.26,-133.59 132.9,-132.24"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="133.38,-135.71 142.72,-130.71 132.3,-128.79 133.38,-135.71"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/end.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="401,-246 316,-246 316,-227 401,-227 401,-246"/>
<text text-anchor="middle" x="358.5" y="-234" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::end</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="#63b8ff" d="M72.98,-165.19C89.5,-182.17 115.31,-205.19 143,-216.5 194.96,-237.74 259.72,-240.95 304.42,-239.97"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="304.49,-243.47 314.38,-239.66 304.28,-236.47 304.49,-243.47"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d4/d3e/k__nearest__neighbors_8cpp.html#ad6ae16e50bb153ebaa7251d0aaa97b69" target="_top" xlink:title="Compute the Euclidean distance between two vectors.">
<polygon fill="white" stroke="#666666" points="262.5,-189 155.5,-189 155.5,-148 262.5,-148 262.5,-189"/>
<text text-anchor="start" x="163.5" y="-177" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::k</text>
<text text-anchor="start" x="163.5" y="-166" font-family="Helvetica,sans-Serif" font-size="10.00">_nearest_neighbors::</text>
<text text-anchor="middle" x="209" y="-155" font-family="Helvetica,sans-Serif" font-size="10.00">euclidean_distance</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node6</title>
<path fill="none" stroke="#63b8ff" d="M107.33,-152.76C119.14,-154.61 131.8,-156.59 144.02,-158.5"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="143.16,-161.9 153.58,-159.99 144.24,-154.99 143.16,-161.9"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/push_back.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="267,-93 151,-93 151,-74 267,-74 267,-93"/>
<text text-anchor="middle" x="209" y="-81" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::push_back</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node12 -->
<g id="edge14" class="edge">
<title>Node1&#45;&gt;Node12</title>
<path fill="none" stroke="#63b8ff" d="M93.47,-123.66C108.66,-116.05 126.38,-107.78 143,-101.5 147.44,-99.82 152.1,-98.23 156.8,-96.73"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="157.75,-100.1 166.31,-93.85 155.72,-93.4 157.75,-100.1"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="252.5,-56 165.5,-56 165.5,-37 252.5,-37 252.5,-56"/>
<text text-anchor="middle" x="209" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node13 -->
<g id="edge15" class="edge">
<title>Node1&#45;&gt;Node13</title>
<path fill="none" stroke="#63b8ff" d="M72.14,-123.84C88.7,-105.69 115.05,-79.86 143,-64.5 146.65,-62.49 150.55,-60.7 154.54,-59.09"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="155.6,-62.43 163.84,-55.78 153.25,-55.83 155.6,-62.43"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/sort.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="235.5,-19 182.5,-19 182.5,0 235.5,0 235.5,-19"/>
<text text-anchor="middle" x="209" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">std::sort</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node14 -->
<g id="edge16" class="edge">
<title>Node1&#45;&gt;Node14</title>
<path fill="none" stroke="#63b8ff" d="M64.64,-123.84C78.63,-97.5 106.34,-52.4 143,-27.5 151.35,-21.83 161.46,-17.93 171.18,-15.26"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="171.89,-18.69 180.82,-13 170.29,-11.88 171.89,-18.69"/>
</g>
<!-- Node6&#45;&gt;Node3 -->
<g id="edge8" class="edge">
<title>Node6&#45;&gt;Node3</title>
<path fill="none" stroke="#63b8ff" d="M230.02,-189.45C249.31,-208.69 280.04,-236.93 311,-255.5 312.89,-256.64 314.87,-257.72 316.9,-258.76"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="315.35,-261.9 325.89,-262.9 318.27,-255.54 315.35,-261.9"/>
</g>
<!-- Node6&#45;&gt;Node5 -->
<g id="edge9" class="edge">
<title>Node6&#45;&gt;Node5</title>
<path fill="none" stroke="#63b8ff" d="M249.91,-189.29C268.32,-198.62 290.58,-209.52 311,-218.5 313.97,-219.81 317.07,-221.12 320.19,-222.4"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="318.78,-225.61 329.37,-226.07 321.38,-219.11 318.78,-225.61"/>
</g>
<!-- Node6&#45;&gt;Node6 -->
<g id="edge10" class="edge">
<title>Node6&#45;&gt;Node6</title>
<path fill="none" stroke="#63b8ff" d="M181.41,-189.49C178.78,-198.88 187.98,-207 209,-207 221.15,-207 229.36,-204.29 233.61,-200.18"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="236.87,-201.52 236.19,-190.95 230.12,-199.64 236.87,-201.52"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/accumulate.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="401.5,-172 315.5,-172 315.5,-153 401.5,-153 401.5,-172"/>
<text text-anchor="middle" x="358.5" y="-160" font-family="Helvetica,sans-Serif" font-size="10.00">std::accumulate</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<title>Node6&#45;&gt;Node7</title>
<path fill="none" stroke="#63b8ff" d="M262.83,-166.35C276.13,-165.81 290.42,-165.23 303.76,-164.69"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="303.83,-168.19 313.68,-164.28 303.55,-161.19 303.83,-168.19"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/iterator/back_inserter.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="406,-135 311,-135 311,-116 406,-116 406,-135"/>
<text text-anchor="middle" x="358.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00">std::back_inserter</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<title>Node6&#45;&gt;Node8</title>
<path fill="none" stroke="#63b8ff" d="M262.83,-153.1C279.06,-148.37 296.77,-143.2 312.43,-138.64"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="313.35,-142.02 321.97,-135.86 311.39,-135.3 313.35,-142.02"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/shrink_to_fit.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="406,-97.5 311,-97.5 311,-67.5 406,-67.5 406,-97.5"/>
<text text-anchor="start" x="319" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::shrink</text>
<text text-anchor="middle" x="358.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">_to_fit</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node9 -->
<g id="edge11" class="edge">
<title>Node6&#45;&gt;Node9</title>
<path fill="none" stroke="#63b8ff" d="M259.46,-147.56C264.83,-144.73 270.11,-141.7 275,-138.5 292.91,-126.78 293.35,-118.61 311,-106.5 312.54,-105.44 314.14,-104.39 315.77,-103.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="317.21,-106.58 324.06,-98.5 313.67,-100.55 317.21,-106.58"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="385,-49 332,-49 332,-30 385,-30 385,-49"/>
<text text-anchor="middle" x="358.5" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00">std::sqrt</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node10 -->
<g id="edge12" class="edge">
<title>Node6&#45;&gt;Node10</title>
<path fill="none" stroke="#63b8ff" d="M262.94,-148.22C267.31,-145.35 271.41,-142.12 275,-138.5 302.44,-110.8 282.95,-85.58 311,-58.5 314.07,-55.54 317.66,-53.02 321.46,-50.87"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="322.85,-54.08 330.43,-46.68 319.89,-47.74 322.85,-54.08"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/transform.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="397,-209 320,-209 320,-190 397,-190 397,-209"/>
<text text-anchor="middle" x="358.5" y="-197" font-family="Helvetica,sans-Serif" font-size="10.00">std::transform</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node11 -->
<g id="edge13" class="edge">
<title>Node6&#45;&gt;Node11</title>
<path fill="none" stroke="#63b8ff" d="M262.83,-179.6C277.85,-182.76 294.13,-186.18 308.89,-189.28"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="307.84,-192.64 318.35,-191.27 309.28,-185.79 307.84,-192.64"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB