<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n/RSS"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/ch9/2266/572266/C9LecturesSTLavavejSTLp5_512_ch9.jpg</url>
		<title>Channel 9 - C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<link></link>
	</image>
	<description>Welcome to another installment of C9 Lectures covering the powerful general C&amp;#43;&amp;#43; library, STL. Joining us once again is the great Stephan T. Lavavej, Microsoft&#39;s keeper of the STL cloth (this means he manages the partnership between the owners of STL (dinkumware) and Microsoft, including, of course, bug fixes and enhancements to the STL that ships as part of Visual C&amp;#43;&amp;#43;). Simply, Stephan is a C&amp;#43;&amp;#43; library developer.As is Stephan&#39;s nature, he elaborates on technical details in very substantive way. The Standard Template Library, orSTL, is a C&amp;#43;&amp;#43; library of container classes, algorithms, and iterators. STL provides many fundamental algorithms and data structures. Furthermore, the STL is a general-purpose library: its components are heavily parameterized, such that almost every component in the STL is a template. In part 5, Stephan digs into the gory details of the member functions employed by his Nurikabe puzzle solver. You must watch part 4 before watching this part!! Enjoy! Learn!Books mentioned by Stephen: The C&amp;#43;&amp;#43; Standard Library: A Tutorial And Reference by Nicolai M. JosuttisEffective STL by Scott Meyers [STL Introduction lecture links] Part 1 (sequence containers) Part 2 (associative containers) Part 3 (smart pointers) Part 4 (Nurikabe solver) - see Wikipedia&#39;s article and Stephan&#39;s updated source code Part 5 (Nurikabe solver, continued) Part 6 (algorithms and functors) Part 7 (algorithms and functors, continued) Part 8 (regular expressions) Part 9 (rvalue references) Part 10 (type traits) </description>
	<link></link>
	<language>en</language>
	<pubDate>Wed, 22 May 2013 10:33:36 GMT</pubDate>
	<lastBuildDate>Wed, 22 May 2013 10:33:36 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<description>
			<![CDATA[
<p>Anyone else having sync issues when it's showing the source code?&nbsp; Thanks.</p>
<p>posted by AceHack</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634200800710000000</link>
		<pubDate>Tue, 14 Sep 2010 16:54:31 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634200800710000000</guid>
		<dc:creator>AceHack</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<description>
			<![CDATA[
<p>I do. Sorry about that. We will need to fix this...</p>
<p>C</p>
<p>PS: Fixed!</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634200823530000000</link>
		<pubDate>Tue, 14 Sep 2010 17:32:33 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634200823530000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<description>
			<![CDATA[
<p>I've solved both &quot;hard&quot; wikipedia example and the 9-th &quot;nikoli&quot; example from Stephan's zip file by human reasoning, <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> without need for &quot;global&quot; backtracking (i.e. &quot;guessing) - only using some limited, localized what-if analysis, and some spatial reasoning
 for the &quot;9&quot; puzzle. The GIF <strong>step-by-step slides</strong> are <a href="http://cid-a609a35764fd4f89.office.live.com/browse.aspx/nurikabe">
here</a> (please sort by name before viewing).</p>
<p>It is possible that the search might be improved by using the heuristic of working near the known
<strong><em>frontier</em></strong> first, with <strong><em>iterative deepening</em></strong> in number of steps considered, instead of demanding a complete answer (solved/contradiction) for each randomly picked point (sure looks like exponential explosion there).</p>
<p>Our goal is to add more knowns to the grid, so we need not pursue guesses which still hasn't produced a definitive determination one way or the other after some threshold number of steps - better abort in the middle and try another guess, in hopes it'll
 produce its answer fairly quickly, and the new known thus found may well lead to a cascade of new knowns to be found semi-automatically (i.e. with
<strong><em>extend</em></strong>/<em><strong>(n-1) projection</strong></em>/<strong><em>surround</em></strong> moves which are very easy to make).</p>
<p>posted by Will_Ness</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634204513940000000</link>
		<pubDate>Sun, 19 Sep 2010 00:03:14 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634204513940000000</guid>
		<dc:creator>Will_Ness</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<description>
			<![CDATA[
<p>Thanks Stephan.</p>
<p>Also I would like to hear about test driven development (TDD) for C&#43;&#43;. I used C&#43;&#43;/C&#43;&#43;CLI/NUnit to leverage all testing goodies at managed side. But it is not a portable solution.</p>
<p>posted by tivadj</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634206471980000000</link>
		<pubDate>Tue, 21 Sep 2010 06:26:38 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634206471980000000</guid>
		<dc:creator>tivadj</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<description>
			<![CDATA[
<p>[Will_Ness]<br />&gt; I've solved both &quot;hard&quot; wikipedia example and the 9-th &quot;nikoli&quot; example from<br />&gt; Stephan's zip file by human reasoning,&nbsp; without need for &quot;global&quot; backtracking<br />&gt; (i.e. &quot;guessing) - only using some limited, localized what-if analysis</p>
<p>Your &quot;5:5 goes RT (if were UP =&gt; NO_ROOM(&quot;3&quot;))&quot; is what my guessing, teamed up with confinement analysis, determines. I don't know how to implement that any more efficiently. (If you do, I encourage you to try!)</p>
<p>&gt; It is possible that the search might be improved by using the heuristic<br />&gt; of working near the known frontier first, with iterative deepening in number of steps considered</p>
<p>Agreed. My guessing is expensive because it amplifies the amount of other expensive analysis (mainly confinement) that's run.</p>
<p>&gt; instead of demanding a complete answer (solved/contradiction) for each randomly picked point (sure looks like exponential explosion there).</p>
<p>It's not exponential, because guesses can result in &quot;I'm stumped, guess another cell&quot;.</p>
<p>[tivadj]<br />&gt; Also I would like to hear about test driven development (TDD) for C&#43;&#43;.</p>
<p>Sorry, I don't know anything about TDD.</p>
<p>posted by STL</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634207219330000000</link>
		<pubDate>Wed, 22 Sep 2010 03:12:13 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634207219330000000</guid>
		<dc:creator>STL</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<description>
			<![CDATA[
<blockquote>
<p><a class="permalink" title="Comment Permalink" href="/Shows/Going&#43;Deep/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634207219330000000">3 hours&nbsp;ago</a>,
<a href="/Niners/STL">STL</a> wrote</p>
<p>[Will_Ness]<br />&gt;&nbsp;... only using some limited, localized what-if analysis</p>
<p>Your &quot;5:5 goes RT (if were UP =&gt; NO_ROOM(&quot;3&quot;))&quot; is what my guessing, teamed up with confinement analysis, determines. I don't know how to implement that any more efficiently. (If you do, I encourage you to try!)</p>
<p>&gt; It is possible that the search might be improved by using the heuristic<br />&gt; of working near the known frontier first, with iterative deepening in number of steps considered</p>
<p>Agreed. My guessing is expensive because it amplifies the amount of other expensive analysis (mainly confinement) that's run.</p>
</blockquote>
<p>&nbsp;</p>
<p>yes, &quot;localized what-if analysis&quot; is of course guessing - <strong>limited </strong>
by the virtue of being performed by a human with very limited backtracking capacity. Not being able to keep in mind more than a few moves is what I refer to &quot;localized&quot; here (closeness to frontier), and is what forces me to consider only very shallow moves
 -&nbsp;what the iterative deepening would achieve, which would <em><strong>suspend</strong>
</em>(not <em><strong>abort</strong></em>) expensive <strong>solve()</strong> computation(s) in progress. Or you could use a good scheduler for a massively parallel solution that would run all of them at once, <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> to take care of that automagically.</p>
<p>I've since&nbsp;seen more puzzle examples, on &quot;puzzle-nurikabe dot com&quot;, where unfortunately the initial frontier expansion stops very early on, and extensive guesswork is unavoidable. There another heuristic sometimes works wonders, which I'm having troubles
 formalizing - painting all the (remaining) cells initially black, and expanding the islands from there, trying &quot;to get away with as much as possible&quot; guided by square condition mostly, at first, and then trying to&nbsp;push a few cells around to correct the problems
 which appear. </p>
<p>posted by Will_Ness</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634207354380000000</link>
		<pubDate>Wed, 22 Sep 2010 06:57:18 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634207354380000000</guid>
		<dc:creator>Will_Ness</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<description>
			<![CDATA[
<p>&gt; what the iterative deepening would achieve, which would suspend (not abort) expensive solve() computation(s) in progress.</p>
<p>The way to implement that would be to make many Grid copies, and call solve() on each of them in succession. You could modify solve() so that you could instruct it to perform only cheap analysis.</p>
<p>posted by STL</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634208088340000000</link>
		<pubDate>Thu, 23 Sep 2010 03:20:34 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634208088340000000</guid>
		<dc:creator>STL</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<description>
			<![CDATA[<p>Am I correct you are using enumerated types to store values outside the declared range of the type?&nbsp; I admit that C&#43;&#43; already allows this where it allows (Enum()) as a valid expression; however, I would never mix entities like that.&nbsp; I would rather use the underlying type or, if it is needed for resolution, a wrapper class.</p><p>BTW, I would really appreciate if enumerated types were true compile-type sets of values in C&#43;&#43;, with expressions like (wrapping) increments (&#43;&#43;e), (--e), (limits&lt;e&gt;) (this one would require compiler magic because builtin types only have min and max as library definitions) and (e = dynamic_cast &lt;Enum&gt; (07)) throwing bad_cast.&nbsp; Of course, these features can be simulated with TMP, but it takes a lot to write such code (and, even worse, to read it).</p><p>posted by giecrilj71pl</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634209113590000000</link>
		<pubDate>Fri, 24 Sep 2010 07:49:19 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634209113590000000</guid>
		<dc:creator>giecrilj71pl</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<description>
			<![CDATA[<p>[giecrilj71pl]<br>&gt; Am I correct you are using enumerated types to store values outside the declared range of the type?</p><p>Yes.&nbsp; It's perfectly valid, because I'm using an explicitly specified underlying type.&nbsp; N3126 7.2 [dcl.enum]/7 says: &quot;For an enumeration whose underlying type is fixed, the values of the enumeration are the values of the underlying type.&quot;</p><p>I started doing this when I noticed that I was manipulating states and coordinates everywhere, and I didn't want to confuse them. By making State an enum, I can't pass an int (like a coordinate) to a function taking a State.</p><p>&gt; BTW, I would really appreciate if enumerated types were true compile-type sets of values in C&#43;&#43;, with expressions like (wrapping) increments (&#43;&#43;e), (--e), (limits&lt;e&gt;)</p><p>Constants can't be modified, especially compile-time constants, so incrementing and decrementing wouldn't make any sense.</p><p>With C&#43;&#43;0x type traits, you can request the underlying type of an enum, and then determine its limits.</p><p>posted by STL</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634209840100000000</link>
		<pubDate>Sat, 25 Sep 2010 04:00:10 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634209840100000000</guid>
		<dc:creator>STL</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Stephan T. Lavavej - Standard Template Library (STL), 5 of n</title>
		<description>
			<![CDATA[ <p>Well, actually hard to learn STL for a first-head frontier(novice), however this video&nbsp;or article is for experts of STL. </p><p>But I'd better recommend to learn Modern C&#43;&#43;. Wow!! it's Fantastic.</p><p>posted by Spetum</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634225300000000000</link>
		<pubDate>Wed, 13 Oct 2010 01:26:40 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n#c634225300000000000</guid>
		<dc:creator>Spetum</dc:creator>
	</item>
</channel>
</rss>