{"id":3743,"date":"2010-09-16T23:41:00","date_gmt":"2010-09-16T23:41:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vcblog\/2010\/09\/16\/video-introduction-to-the-stl-part-5\/"},"modified":"2019-02-18T18:45:26","modified_gmt":"2019-02-18T18:45:26","slug":"video-introduction-to-the-stl-part-5","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/video-introduction-to-the-stl-part-5\/","title":{"rendered":"Video Introduction to the STL, Part 5"},"content":{"rendered":"<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\"><span style=\"font-family: 'Verdana','sans-serif';font-size: 12pt\">In <a href=\"https:\/\/channel9.msdn.com\/shows\/Going+Deep\/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-5-of-n\/\">the fifth part<\/a> of my video lecture series introducing the Standard Template Library, I explain how the advanced analysis in my Nurikabe solver works.<span>&nbsp; <\/span>One of its steps involves using a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Breadth-first_search\">breadth-first search<\/a> to detect any unreachable cells.<\/p>\n<p><\/span><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\"><span style=\"font-family: 'Verdana','sans-serif';font-size: 12pt\"><\/p>\n<p>&nbsp;<\/p>\n<p><\/span><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\"><span style=\"font-family: 'Verdana','sans-serif';font-size: 12pt\">Mandatory prerequisites of Part 5 are reading Wikipedia&#8217;s <a href=\"http:\/\/en.wikipedia.org\/wiki\/Nurikabe\"><span style=\"color: blue\">Nurikabe<\/span><\/a> page and watching <a href=\"https:\/\/channel9.msdn.com\/shows\/Going+Deep\/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-4-of-n\/\">Part 4<\/a> (the introduction to my Nurikabe solver).<span>&nbsp; <\/span>It also assumes that you&#8217;ve watched <a href=\"https:\/\/channel9.msdn.com\/shows\/Going+Deep\/C9-Lectures-Introduction-to-STL-with-Stephan-T-Lavavej\/\"><span style=\"color: blue\">Part 1<\/span><\/a> (sequence containers), <a href=\"https:\/\/channel9.msdn.com\/shows\/Going+Deep\/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-2-of-n\/\"><span style=\"color: blue\">Part 2<\/span><\/a> (associative containers), and <a href=\"https:\/\/channel9.msdn.com\/shows\/Going+Deep\/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-3-of-n\/\"><span style=\"color: blue\">Part 3<\/span><\/a> (smart pointers), or that you&#8217;re already familiar with those topics.<\/p>\n<p><\/span><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\"><span style=\"font-family: 'Verdana','sans-serif';font-size: 12pt\"><\/p>\n<p>&nbsp;<\/p>\n<p><\/span><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\"><span style=\"font-family: 'Verdana','sans-serif';font-size: 12pt\">I highly encourage you to read this extended example and see how basically every line uses the STL to do clever things.<span>&nbsp; <\/span>My original <a href=\"http:\/\/ecn.channel9.msdn.com\/content\/C9Lectures\/STL\/nurikabe\/nurikabe.cpp\"><span style=\"color: blue\">source code<\/span><\/a> and <a href=\"http:\/\/ecn.channel9.msdn.com\/content\/C9Lectures\/STL\/nurikabe\/output.html\"><span style=\"color: blue\">output<\/span><\/a> are available.&nbsp; I&#8217;ve been working on improving them, and versions 1.0 through 1.3 are available <a href=\"http:\/\/cid-e66e02dc83efb165.office.live.com\/browse.aspx\/nurikabe\">here<\/a>.<\/p>\n<p><\/span><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\"><span style=\"font-family: 'Verdana','sans-serif';font-size: 12pt\"><\/p>\n<p>&nbsp;<\/p>\n<p><\/span><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\"><span style=\"font-family: 'Verdana','sans-serif';font-size: 12pt\">Stephan T. Lavavej<\/p>\n<p><\/span><\/p>\n<p style=\"margin: 0in 0in 0pt\" class=\"MsoNormal\"><span style=\"font-family: 'Verdana','sans-serif';font-size: 12pt\">Visual C++ Libraries Developer<\/span><\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the fifth part of my video lecture series introducing the Standard Template Library, I explain how the advanced analysis in my Nurikabe solver works.&nbsp; One of its steps involves using a breadth-first search to detect any unreachable cells. &nbsp; Mandatory prerequisites of Part 5 are reading Wikipedia&#8217;s Nurikabe page and watching Part 4 (the [&hellip;]<\/p>\n","protected":false},"author":289,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[9,3,32],"class_list":["post-3743","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","tag-channel-9","tag-dev","tag-stl"],"acf":[],"blog_post_summary":"<p>In the fifth part of my video lecture series introducing the Standard Template Library, I explain how the advanced analysis in my Nurikabe solver works.&nbsp; One of its steps involves using a breadth-first search to detect any unreachable cells. &nbsp; Mandatory prerequisites of Part 5 are reading Wikipedia&#8217;s Nurikabe page and watching Part 4 (the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/3743","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/289"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=3743"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/3743\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=3743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=3743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=3743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}