<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://mit.spbau.ru/sewiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alexey.kudinkin</id>
		<title>SEWiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://mit.spbau.ru/sewiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alexey.kudinkin"/>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Alexey.kudinkin"/>
		<updated>2026-04-11T13:44:58Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7636</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7636"/>
				<updated>2016-03-25T09:51:09Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* Advanced */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Intro to exceptions ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== Exceptions Safety ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator='''  (strong)&lt;br /&gt;
* '''push_back''' (strong)&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined utilities.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely (`uninitialized_*` family).&lt;br /&gt;
&lt;br /&gt;
== Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Algorithms quiz ==&lt;br /&gt;
&lt;br /&gt;
== Functors ==&lt;br /&gt;
&lt;br /&gt;
=== Basic ===&lt;br /&gt;
&lt;br /&gt;
Implement `mem_fn` functor class to match the behaviour of `std::mem_fn`&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/ur030ymh9ogetm3/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&lt;br /&gt;
Implement place-holding logic of the `std::bind`&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/pidfxlzc18kvl1y/bind.cc?dl=0&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7635</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7635"/>
				<updated>2016-03-25T09:50:50Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* Basic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Intro to exceptions ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== Exceptions Safety ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator='''  (strong)&lt;br /&gt;
* '''push_back''' (strong)&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined utilities.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely (`uninitialized_*` family).&lt;br /&gt;
&lt;br /&gt;
== Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Algorithms quiz ==&lt;br /&gt;
&lt;br /&gt;
== Functors ==&lt;br /&gt;
&lt;br /&gt;
=== Basic ===&lt;br /&gt;
&lt;br /&gt;
Implement `mem_fn` functor class to match the behaviour of `std::mem_fn`&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/ur030ymh9ogetm3/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&lt;br /&gt;
Implement place-holding logic of the `std::bind`&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/home/courses/cpp/15/task?preview=bind.cc&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7634</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7634"/>
				<updated>2016-03-25T08:22:16Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* Functors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Intro to exceptions ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== Exceptions Safety ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator='''  (strong)&lt;br /&gt;
* '''push_back''' (strong)&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined utilities.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely (`uninitialized_*` family).&lt;br /&gt;
&lt;br /&gt;
== Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Algorithms quiz ==&lt;br /&gt;
&lt;br /&gt;
== Functors ==&lt;br /&gt;
&lt;br /&gt;
=== Basic ===&lt;br /&gt;
&lt;br /&gt;
Implement `mem_fn` functor class to match the behaviour of `std::mem_fn`&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/home/courses/cpp/15/task?preview=assignment.cc&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&lt;br /&gt;
Implement place-holding logic of the `std::bind`&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/home/courses/cpp/15/task?preview=bind.cc&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7633</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7633"/>
				<updated>2016-03-25T08:22:07Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* Functors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Intro to exceptions ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== Exceptions Safety ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator='''  (strong)&lt;br /&gt;
* '''push_back''' (strong)&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined utilities.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely (`uninitialized_*` family).&lt;br /&gt;
&lt;br /&gt;
== Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Algorithms quiz ==&lt;br /&gt;
&lt;br /&gt;
== Functors ==&lt;br /&gt;
&lt;br /&gt;
=== Basic ===&lt;br /&gt;
&lt;br /&gt;
Implement `mem_fn` functor class to match the behaviour of `std::mem_fn`&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/home/courses/cpp/15/task?preview=assignment.cc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&lt;br /&gt;
Implement place-holding logic of the `std::bind`&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/home/courses/cpp/15/task?preview=bind.cc&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7631</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7631"/>
				<updated>2016-03-25T08:18:53Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Intro to exceptions ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== Exceptions Safety ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator='''  (strong)&lt;br /&gt;
* '''push_back''' (strong)&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined utilities.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely (`uninitialized_*` family).&lt;br /&gt;
&lt;br /&gt;
== Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Algorithms quiz ==&lt;br /&gt;
&lt;br /&gt;
== Functors ==&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7573</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7573"/>
				<updated>2016-03-11T07:46:18Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #4 Deque */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Intro to exceptions ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== Exceptions Safety ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator='''  (strong)&lt;br /&gt;
* '''push_back''' (strong)&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined utilities.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely (`uninitialized_*` family).&lt;br /&gt;
&lt;br /&gt;
== Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7572</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7572"/>
				<updated>2016-03-11T07:46:03Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Intro to exceptions ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== Exceptions Safety ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator='''  (strong)&lt;br /&gt;
* '''push_back''' (strong)&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined utilities.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely (`uninitialized_*` family).&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7537</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7537"/>
				<updated>2016-03-04T08:34:03Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Intro to exceptions ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== Exceptions Safety ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator='''  (strong)&lt;br /&gt;
* '''push_back''' (strong)&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined utilities.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely (`uninitialized_*` family).&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7436</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7436"/>
				<updated>2016-02-19T08:03:03Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* intro to exceptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== intro to exceptions ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7435</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7435"/>
				<updated>2016-02-19T08:02:53Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /*  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== intro to exceptions ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0&lt;br /&gt;
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7434</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7434"/>
				<updated>2016-02-19T07:55:03Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== vector&amp;lt;T&amp;gt;/vector&amp;lt;bool&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Реализовать шаблонную версию ранее реализованного контейнера vector. &lt;br /&gt;
Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector&amp;lt;bool&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== ==&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7433</id>
		<title>C++ Группа 1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_1&amp;diff=7433"/>
				<updated>2016-02-19T07:53:35Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: Новая страница: «Кудинкин Алексей  [mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]  +7-911-748-38-35»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SE_Wiki&amp;diff=7432</id>
		<title>SE Wiki</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SE_Wiki&amp;diff=7432"/>
				<updated>2016-02-19T07:52:18Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* Учебная информация */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Учебная информация ==&lt;br /&gt;
&lt;br /&gt;
=== 1 курс ===&lt;br /&gt;
&lt;br /&gt;
[[Алгебра_phys_1_весна_2016 | Алгебра (для студентов-физиков)]]&lt;br /&gt;
&lt;br /&gt;
[[Алгоритмы_1_2015/16_весна | Алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Архитектура_КС_весна | Архитектура КС]]&lt;br /&gt;
&lt;br /&gt;
С++&lt;br /&gt;
# [[C++_Группа_1 | Группа 1]]&lt;br /&gt;
# [[C++_группа_2 | Группа 2]]&lt;br /&gt;
&lt;br /&gt;
=== 2 курс ===&lt;br /&gt;
[[Расписание_2_курса,_весна_2016|Расписание]]&lt;br /&gt;
&lt;br /&gt;
[[Конспекты_2_курса,_весна_2016|Конспекты]]&lt;br /&gt;
&lt;br /&gt;
# [[Микроэкономика,_весна_2016|Экономика]]&lt;br /&gt;
# [[Java_2MIT_весна_2016|Java]]&lt;br /&gt;
# [[OS_2MIT_spring|ОС]]&lt;br /&gt;
# [[Computational_complexity|Complexity]]&lt;br /&gt;
# [[Дискретная_математика,_2_курс,_весна_2015|Дискретная математика]]&lt;br /&gt;
# [[English,_2_term,_spring_2016|English]]&lt;br /&gt;
&lt;br /&gt;
=== 5 курс ===&lt;br /&gt;
# [[Linux_kernel_2016|Программирование в ядре Linux]]&lt;br /&gt;
# [[Алгоритмы_и_структуры_данных_5_2015|Алгоритмы и структуры данных]]&lt;br /&gt;
# [[Java_5MIT_весна_2016|Java]]&lt;br /&gt;
# [[CPP_5_2015|C++]]&lt;br /&gt;
&lt;br /&gt;
=== 6 курс ===&lt;br /&gt;
==== Обязательные: ====&lt;br /&gt;
&lt;br /&gt;
==== По выбору: ====&lt;br /&gt;
[[Компьютерное зрение (весна 2016)]]&lt;br /&gt;
&lt;br /&gt;
== Всякая информация ==&lt;br /&gt;
&lt;br /&gt;
На четвёртом этаже в комнате отдыха в шкафах у входа (снизу) лежит куча пилотов.&lt;br /&gt;
&lt;br /&gt;
Открытые исходящие порты в WirelessForAll: 22, 25, 80, 110, 443, 465, 993, 4244, 5190, 5222, 5242&lt;br /&gt;
&lt;br /&gt;
== Дни разработчика ==&lt;br /&gt;
* [[Devdays2h2012| Дни разработчика (Осень 2012)]]&lt;br /&gt;
* [[Devdays1h2013| Дни разработчика (Весна 2013)]]&lt;br /&gt;
* [[devdays_fall_2013| Дни разработчика (Осень 2013)]]&lt;br /&gt;
* [[devdays_spring_2014| Дни разработчика (Весна 2014)]]&lt;br /&gt;
* [[ prpojects_fall_2013|Странички проектов (Осень 2013)]]&lt;br /&gt;
* [[ prpojects_spring_2014|Страничка проектов (Весна 2014)]]&lt;br /&gt;
* [[devdays_fall_2014|Дни разработчика (Осень 2014)]]&lt;br /&gt;
* [[projects_fall_2014|Страничка проектов (Осень 2014)]]&lt;br /&gt;
* [[devdays_spring_2015|Дни разработчика (Весна 2015)]]&lt;br /&gt;
&lt;br /&gt;
== Архив за прошлые семестры ==&lt;br /&gt;
* [[Осень_2015|Осенний семестр 2015]]&lt;br /&gt;
* [[Весна_2015|Весенний семестр 2015]]&lt;br /&gt;
* [[Осень_2014|Осенний семестр 2014]]&lt;br /&gt;
* [[Весна_2014|Весенний семестр 2014]]&lt;br /&gt;
* [[Осень_2013|Осенний семестр 2013]]&lt;br /&gt;
* [[Весна_2013|Весенний семестр 2013]]&lt;br /&gt;
* [[Осень_2012|Осенний семестр 2012]]&lt;br /&gt;
* [[Весна_2012|Весенний семестр 2012]]&lt;br /&gt;
* [[Осень_2011|Осенний семестр 2011]]&lt;br /&gt;
&lt;br /&gt;
== Практики ==&lt;br /&gt;
* [[НИР_5SE_осень_2014|Темы практик, осень 2014-го года]]&lt;br /&gt;
* [[НИР_5SE_весна_2014|Темы практик, весна 2014-го года]]&lt;br /&gt;
* [[НИР_5SE_осень_2013|Темы практик, осень 2013-го года]]&lt;br /&gt;
* [[НИР_5SE_весна_2013|Темы практик, весна 2013-го года]]&lt;br /&gt;
* [[НИР 5SE осень 2012|Темы практик, осень 2012-го года]]&lt;br /&gt;
* [https://docs.google.com/spreadsheet/pub?key=0Aif17q2hwUt4dG9CRFdGa2tLeV9ab1l1QWlkOFp3bFE&amp;amp;output=html Темы практик, лето 2012-го года]&lt;br /&gt;
* [[Темы практик, 5SE, осень 2011-го года | Темы практик, осень 2011-го года]]&lt;br /&gt;
* [[Темы практик |Темы практик, весна 2011-го года]]&lt;br /&gt;
&lt;br /&gt;
== Студенты ==&lt;br /&gt;
* [[2010|Набор 2010-го года]]&lt;br /&gt;
* [[2011|Набор 2011-го года]]&lt;br /&gt;
* [[2012|Набор 2012-го года]]&lt;br /&gt;
* [[2013|Набор 2013-го года]]&lt;br /&gt;
* [[2014|Набор 2014-го года]]&lt;br /&gt;
* [[2015|Набор 2015-го года]]&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
&lt;br /&gt;
== Дополнительно == &lt;br /&gt;
* [[Q&amp;amp;A]]&lt;br /&gt;
* [[Мероприятия]]&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=6614</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=6614"/>
				<updated>2015-10-30T08:25:10Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #9 Output streams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;br /&gt;
&lt;br /&gt;
== #9 Output streams ==&lt;br /&gt;
&lt;br /&gt;
Using an interface provided you need to implement `StandardConsoleOutputStream`, `ErrorConsoleOutputStream`, `FileOutputStream`.&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0&lt;br /&gt;
&lt;br /&gt;
== #10 Arithmetic Operations ==&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать следующие узлы дерева арифметических операций:&lt;br /&gt;
&lt;br /&gt;
Сложение, Вычитание, Умножение, Деление, Деление по модулю, Литерал (константа).&lt;br /&gt;
&lt;br /&gt;
Каждый из узлов должен наследовать базовый класс (интерфейс `i_expr`):&lt;br /&gt;
&lt;br /&gt;
 struct i_expr &lt;br /&gt;
 {&lt;br /&gt;
   virtual void print(std::stringstream&amp;amp; s) = 0;&lt;br /&gt;
   virtual int eval() = 0;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
NB: Реализация, должна подразумевать возможность создания дерева динамически (с использованием оператора new). Hint: проверьте корректно ли освобождается память в вашей реализации.&lt;br /&gt;
&lt;br /&gt;
== #11 auto_ptr ==&lt;br /&gt;
&lt;br /&gt;
== #12 big_int ==&lt;br /&gt;
&lt;br /&gt;
Реализовать класс для работы с длинной арифметикой. Задание делится на две части: &lt;br /&gt;
&lt;br /&gt;
'#1 &lt;br /&gt;
 &lt;br /&gt;
 struct big_int&lt;br /&gt;
 {&lt;br /&gt;
   _?_ operator+(_?_ other);&lt;br /&gt;
   _?_ operator-(_?_ other);&lt;br /&gt;
   _?_ operator&amp;lt;(_?_ other);&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
'#2 &lt;br /&gt;
&lt;br /&gt;
 struct big_int&lt;br /&gt;
 {&lt;br /&gt;
   _?_ operator+(_?_ other);&lt;br /&gt;
   _?_ operator-(_?_ other);&lt;br /&gt;
   _?_ operator*(_?_ other);&lt;br /&gt;
   _?_ operator/(_?_ other);&lt;br /&gt;
   _?_ operator&amp;lt;(_?_ other);&lt;br /&gt;
 };&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP_1_2015&amp;diff=6350</id>
		<title>CPP 1 2015</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP_1_2015&amp;diff=6350"/>
				<updated>2015-09-11T10:02:28Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор — Евгений Михайлович Линский (&amp;lt;b&amp;gt;?&amp;lt;/b&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Практика — Алексей Игоревич Кудинкин (&amp;lt;b&amp;gt;alexey.kudinkin@gmail.com&amp;lt;/b&amp;gt;), Александр Сергеевич Опейкин (&amp;lt;b&amp;gt;alexander.opeykin@gmail.com&amp;lt;/b&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Группы ==&lt;br /&gt;
&lt;br /&gt;
[[C++ Практические задания Группа №1 | Группа #1 ]]&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5982</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5982"/>
				<updated>2015-05-15T09:07:49Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator=''' / strong&lt;br /&gt;
* '''push_back''' / strong&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined functions.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* Implement ''sliding'' procedure which allows you to move given range around the whole sequence (like dragging UI along the line)&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea slide.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _RanIt&amp;gt; &lt;br /&gt;
_RanIt slide(_RanIt first, _RanIt last, _RanIt pivot)&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement ''gathering'' procedure which can be seen similar to the previous ''slide'' procedure: it ''gathers'' all elements in the given range for which supplied `predicate` value returns true and slides them towards the target position designated by the ''pivot'' iterator&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea gather.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _BiIt, typename UnPred&amp;gt; &lt;br /&gt;
_BiIt gather(_BiIt first, _BiIt last, _BiIt pivot, UnPred pred)&lt;br /&gt;
&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
/* pred         -- predicate selecting which elements should be gathered */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Quicksort QuickSort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
'''Hint''': following utilities may be especially helpful for the described tasks: `std::rotate`, `std::upper_bound`, `std::next`, `std::nth_element`&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== make_shared ==&lt;br /&gt;
&lt;br /&gt;
Implement `make_shared` utility having signature:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
template&amp;lt;typename T&amp;gt;&lt;br /&gt;
std::shared_ptr&amp;lt;T&amp;gt; make_shared(/* ? */);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
that accepts '''single''' argument and creates an object of type `T` and supplies caller with `shared_ptr` pointing to it.&lt;br /&gt;
&lt;br /&gt;
'''NB''': Your implementation '''must''' comply with ''all'' of the following tests:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
template&amp;lt;typename T&amp;gt;&lt;br /&gt;
std::shared_ptr&amp;lt;T&amp;gt; make_shared(/* ? */);&lt;br /&gt;
&lt;br /&gt;
struct Y &lt;br /&gt;
{&lt;br /&gt;
    Y(int&amp;amp; a) {}&lt;br /&gt;
    Y(const int &amp;amp; a) {}&lt;br /&gt;
  &lt;br /&gt;
  private:&lt;br /&gt;
    Y(const Y&amp;amp;);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct X&lt;br /&gt;
{&lt;br /&gt;
  X(Y&amp;amp;&amp;amp; a) {}&lt;br /&gt;
  X(Y&amp;amp; a) {}&lt;br /&gt;
  X(const Y&amp;amp; a) {}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int ARGC, char *ARGV[])&lt;br /&gt;
{&lt;br /&gt;
  auto _1 = make_shared&amp;lt;Y&amp;gt;(Y(0)); // X(Y&amp;amp;&amp;amp;);&lt;br /&gt;
&lt;br /&gt;
  Y y(0);&lt;br /&gt;
  auto _2 = make_shared&amp;lt;Y&amp;gt;(y);    // X(Y&amp;amp;);&lt;br /&gt;
&lt;br /&gt;
  const Y cy(1);&lt;br /&gt;
  auto _3 = make_shared&amp;lt;X&amp;gt;(cy);   // X(const Y&amp;amp;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== inherit ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
struct NIL {};&lt;br /&gt;
&lt;br /&gt;
template&amp;lt;class H, class T = NIL&amp;gt;&lt;br /&gt;
  struct cons {&lt;br /&gt;
    typedef T tail_type;&lt;br /&gt;
    typedef H head_type;&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
template&amp;lt;class L&amp;gt;&lt;br /&gt;
  struct inherit : L::head_type, inherit&amp;lt;typename L::tail_type&amp;gt; {};&lt;br /&gt;
&lt;br /&gt;
template&amp;lt;&amp;gt; struct inherit&amp;lt;NIL&amp;gt; {};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
struct A {&lt;br /&gt;
  void foo() { std::cout &amp;lt;&amp;lt; &amp;quot;class A::foo\n&amp;quot;; } &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct B {&lt;br /&gt;
  void foo() { std::cout &amp;lt;&amp;lt; &amp;quot;class B::foo\n&amp;quot;; } &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct C {&lt;br /&gt;
  void foo() { std::cout &amp;lt;&amp;lt; &amp;quot;class C::foo\n&amp;quot;; } &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
typedef cons&amp;lt; A, cons&amp;lt; B, cons&amp;lt; C &amp;gt; &amp;gt; &amp;gt; A_B_C;&lt;br /&gt;
&lt;br /&gt;
template&amp;lt;typename T&amp;gt;&lt;br /&gt;
struct D : inherit&amp;lt;T&amp;gt; {&lt;br /&gt;
&lt;br /&gt;
  void foo() {&lt;br /&gt;
    /* ? */&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int ARGC, char *ARGV[]) {&lt;br /&gt;
&lt;br /&gt;
  D&amp;lt;A_B_C&amp;gt; d;&lt;br /&gt;
&lt;br /&gt;
  d.foo();&lt;br /&gt;
&lt;br /&gt;
  return 0;    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5906</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5906"/>
				<updated>2015-04-24T20:14:09Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator=''' / strong&lt;br /&gt;
* '''push_back''' / strong&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined functions.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* Implement ''sliding'' procedure which allows you to move given range around the whole sequence (like dragging UI along the line)&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea slide.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _RanIt&amp;gt; &lt;br /&gt;
_RanIt slide(_RanIt first, _RanIt last, _RanIt pivot)&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement ''gathering'' procedure which can be seen similar to the previous ''slide'' procedure: it ''gathers'' all elements in the given range for which supplied `predicate` value returns true and slides them towards the target position designated by the ''pivot'' iterator&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea gather.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _BiIt, typename UnPred&amp;gt; &lt;br /&gt;
_BiIt gather(_BiIt first, _BiIt last, _BiIt pivot, UnPred pred)&lt;br /&gt;
&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
/* pred         -- predicate selecting which elements should be gathered */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Quicksort QuickSort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
'''Hint''': following utilities may be especially helpful for the described tasks: `std::rotate`, `std::upper_bound`, `std::next`, `std::nth_element`&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== make_shared ==&lt;br /&gt;
&lt;br /&gt;
Implement `make_shared` utility having signature:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
template&amp;lt;typename T&amp;gt;&lt;br /&gt;
std::shared_ptr&amp;lt;T&amp;gt; make_shared(/* ? */);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
that accepts '''single''' argument and creates an object of type `T` and supplies caller with `shared_ptr` pointing to it.&lt;br /&gt;
&lt;br /&gt;
'''NB''': Your implementation '''must''' comply with ''all'' of the following tests:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
template&amp;lt;typename T&amp;gt;&lt;br /&gt;
std::shared_ptr&amp;lt;T&amp;gt; make_shared(/* ? */);&lt;br /&gt;
&lt;br /&gt;
struct Y &lt;br /&gt;
{&lt;br /&gt;
    Y(int&amp;amp; a) {}&lt;br /&gt;
    Y(const int &amp;amp; a) {}&lt;br /&gt;
  &lt;br /&gt;
  private:&lt;br /&gt;
    Y(const Y&amp;amp;);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct X&lt;br /&gt;
{&lt;br /&gt;
  X(Y&amp;amp;&amp;amp; a) {}&lt;br /&gt;
  X(Y&amp;amp; a) {}&lt;br /&gt;
  X(const Y&amp;amp; a) {}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int ARGC, char *ARGV[])&lt;br /&gt;
{&lt;br /&gt;
  auto _1 = make_shared&amp;lt;Y&amp;gt;(Y(0)); // X(Y&amp;amp;&amp;amp;);&lt;br /&gt;
&lt;br /&gt;
  Y y(0);&lt;br /&gt;
  auto _2 = make_shared&amp;lt;Y&amp;gt;(y);    // X(Y&amp;amp;);&lt;br /&gt;
&lt;br /&gt;
  const Y cy(1);&lt;br /&gt;
  auto _3 = make_shared&amp;lt;X&amp;gt;(cy);   // X(const Y&amp;amp;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5905</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5905"/>
				<updated>2015-04-24T20:01:15Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator=''' / strong&lt;br /&gt;
* '''push_back''' / strong&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined functions.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* Implement ''sliding'' procedure which allows you to move given range around the whole sequence (like dragging UI along the line)&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea slide.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _RanIt&amp;gt; &lt;br /&gt;
_RanIt slide(_RanIt first, _RanIt last, _RanIt pivot)&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement ''gathering'' procedure which can be seen similar to the previous ''slide'' procedure: it ''gathers'' all elements in the given range for which supplied `predicate` value returns true and slides them towards the target position designated by the ''pivot'' iterator&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea gather.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _BiIt, typename UnPred&amp;gt; &lt;br /&gt;
_BiIt gather(_BiIt first, _BiIt last, _BiIt pivot, UnPred pred)&lt;br /&gt;
&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
/* pred         -- predicate selecting which elements should be gathered */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Quicksort QuickSort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
'''Hint''': following utilities may be especially helpful for the described tasks: `std::rotate`, `std::upper_bound`, `std::next`, `std::nth_element`&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5904</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5904"/>
				<updated>2015-04-24T20:00:34Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator=''' / strong&lt;br /&gt;
* '''push_back''' / strong&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined functions.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* Implement ''sliding'' procedure which allows you to move given range around the whole sequence (like dragging UI along the line)&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea slide.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _RanIt&amp;gt; &lt;br /&gt;
_RanIt slide(_RanIt first, _RanIt last, _RanIt pivot)&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement ''gathering'' procedure which can be seen similar to the previous ''slide'' procedure: it ''gathers'' all elements in the given range for which supplied `predicate` value returns true and slides them towards the target position designated by the ''pivot'' iterator&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea gather.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _BiIt, typename UnPred&amp;gt; &lt;br /&gt;
_BiIt gather(_BiIt first, _BiIt last, _BiIt pivot, UnPred pred)&lt;br /&gt;
&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
/* pred         -- predicate selecting which elements should be gathered */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5903</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5903"/>
				<updated>2015-04-24T19:59:42Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: Отмена правки 5765, сделанной участником Alexey.kudinkin (обс.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator=''' / strong&lt;br /&gt;
* '''push_back''' / strong&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined functions.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* TBD&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5902</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5902"/>
				<updated>2015-04-24T19:59:28Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: Отмена правки 5766, сделанной участником Alexey.kudinkin (обс.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* Implement ''sliding'' procedure which allows you to move given range around the whole sequence (like dragging UI along the line)&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea slide.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _RanIt&amp;gt; &lt;br /&gt;
_RanIt slide(_RanIt first, _RanIt last, _RanIt pivot)&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement ''gathering'' procedure which can be seen similar to the previous ''slide'' procedure: it ''gathers'' all elements in the given range for which supplied `predicate` value returns true and slides them towards the target position designated by the ''pivot'' iterator&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea gather.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _BiIt, typename UnPred&amp;gt; &lt;br /&gt;
_BiIt gather(_BiIt first, _BiIt last, _BiIt pivot, UnPred pred)&lt;br /&gt;
&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
/* pred         -- predicate selecting which elements should be gathered */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5901</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5901"/>
				<updated>2015-04-24T19:59:16Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: Отмена правки 5767, сделанной участником Alexey.kudinkin (обс.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* Implement ''sliding'' procedure which allows you to move given range around the whole sequence (like dragging UI along the line)&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea slide.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _RanIt&amp;gt; &lt;br /&gt;
_RanIt slide(_RanIt first, _RanIt last, _RanIt pivot)&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement ''gathering'' procedure which can be seen similar to the previous ''slide'' procedure: it ''gathers'' all elements in the given range for which supplied `predicate` value returns true and slides them towards the target position designated by the ''pivot'' iterator&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea gather.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _BiIt, typename UnPred&amp;gt; &lt;br /&gt;
_BiIt gather(_BiIt first, _BiIt last, _BiIt pivot, UnPred pred)&lt;br /&gt;
&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
/* pred         -- predicate selecting which elements should be gathered */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Quicksort QuickSort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
'''Hint''': following utilities may be especially helpful for the described tasks: `std::rotate`, `std::upper_bound`, `std::next`, `std::nth_element`&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5767</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5767"/>
				<updated>2015-03-30T23:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /*  quiz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* Implement ''sliding'' procedure which allows you to move given range around the whole sequence (like dragging UI along the line)&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea slide.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _RanIt&amp;gt; &lt;br /&gt;
_RanIt slide(_RanIt first, _RanIt last, _RanIt pivot)&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement ''gathering'' procedure which can be seen similar to the previous ''slide'' procedure: it ''gathers'' all elements in the given range for which supplied `predicate` value returns true and slides them towards the target position designated by the ''pivot'' iterator&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea gather.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _BiIt, typename UnPred&amp;gt; &lt;br /&gt;
_BiIt gather(_BiIt first, _BiIt last, _BiIt pivot, UnPred pred)&lt;br /&gt;
&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
/* pred         -- predicate selecting which elements should be gathered */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Quicksort QuickSort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Hint''': following utilities may be especially helpful for the described tasks: `std::rotate`, `std::upper_bound`, `std::next`, `std::nth_element`&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5766</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5766"/>
				<updated>2015-03-30T23:32:18Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /*  quiz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* Implement ''sliding'' procedure which allows you to move given range around the whole sequence (like dragging UI along the line)&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea slide.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _RanIt&amp;gt; &lt;br /&gt;
_RanIt slide(_RanIt first, _RanIt last, _RanIt pivot)&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement ''gathering'' procedure which can be seen similar to the previous ''slide'' procedure: it ''gathers'' all elements in the given range for which supplied `predicate` value returns true and slides them towards the target position designated by the ''pivot'' iterator&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea gather.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _BiIt, typename UnPred&amp;gt; &lt;br /&gt;
_BiIt gather(_BiIt first, _BiIt last, _BiIt pivot, UnPred pred)&lt;br /&gt;
&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
/* pred         -- predicate selecting which elements should be gathered */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Quicksort QuickSort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
'''Hint''': following utilities may be especially helpful for the described tasks: `std::rotate`, `std::upper_bound`, `std::next`, `std::nth_element`&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5765</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5765"/>
				<updated>2015-03-30T23:30:12Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* Implement ''sliding'' procedure which allows you to move given range around the whole sequence (like dragging UI along the line)&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea slide.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _RanIt&amp;gt; &lt;br /&gt;
_RanIt slide(_RanIt first, _RanIt last, _RanIt pivot)&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement ''gathering'' procedure which can be seen similar to the previous ''slide'' procedure: it ''gathers'' all elements in the given range for which supplied `predicate` value returns true and slides them towards the target position designated by the ''pivot'' iterator&lt;br /&gt;
&lt;br /&gt;
[[Файл:Stdbea gather.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template &amp;lt;typename _BiIt, typename UnPred&amp;gt; &lt;br /&gt;
_BiIt gather(_BiIt first, _BiIt last, _BiIt pivot, UnPred pred)&lt;br /&gt;
&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
/* pivot        -- iterator pointing to the element, where first element of the supplied subsequence should arrive at */&lt;br /&gt;
/* pred         -- predicate selecting which elements should be gathered */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Stdbea_slide.png&amp;diff=5764</id>
		<title>Файл:Stdbea slide.png</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Stdbea_slide.png&amp;diff=5764"/>
				<updated>2015-03-30T23:29:39Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Stdbea_gather.png&amp;diff=5763</id>
		<title>Файл:Stdbea gather.png</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Stdbea_gather.png&amp;diff=5763"/>
				<updated>2015-03-30T23:28:53Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5752</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5752"/>
				<updated>2015-03-28T21:32:33Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* Весенний Семестр */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator=''' / strong&lt;br /&gt;
* '''push_back''' / strong&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined functions.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Implement [http://en.wikipedia.org/wiki/Insertion_sort Insertion Sort] '''without''' loops, using only utilitiies provided by STL.&lt;br /&gt;
&lt;br /&gt;
* TBD&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5751</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5751"/>
				<updated>2015-03-28T21:30:12Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* Весенний Семестр */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator=''' / strong&lt;br /&gt;
* '''push_back''' / strong&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined functions.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;algorithm&amp;gt; quiz ==&lt;br /&gt;
&lt;br /&gt;
* Implement ''in-place'' function ''rotating'' supplied sequence to the left, having following interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename It&amp;gt;&lt;br /&gt;
void rotate(It first, It new_first, It last);&lt;br /&gt;
/* first        -- iterator pointing to the first element */&lt;br /&gt;
/* new_first    -- iterator pointing to the element, that should become first after rotation is finished */&lt;br /&gt;
/* last         -- iterator pointing past the last element */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5750</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5750"/>
				<updated>2015-03-28T21:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #5 Exceptions Guarantees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;br /&gt;
&lt;br /&gt;
==== Main ====&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator=''' / strong&lt;br /&gt;
* '''push_back''' / strong&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined functions.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely.&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5749</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5749"/>
				<updated>2015-03-28T21:20:26Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #5 Exceptions Guarantees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator=''' / strong&lt;br /&gt;
* '''push_back''' / strong&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined functions.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely.&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5748</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5748"/>
				<updated>2015-03-28T21:20:08Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #5 Exceptions Guarantees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;br /&gt;
&lt;br /&gt;
Reconsider your own `vector` implementation towards making it ''[http://en.wikipedia.org/wiki/Exception_safety exception-safe]''.&lt;br /&gt;
&lt;br /&gt;
Following members of your `vector` implementation should be reconsidered to match corresponding ''[http://en.wikipedia.org/wiki/Exception_safety exception-safety guarantees]'':&lt;br /&gt;
&lt;br /&gt;
* '''operator=''' / strong&lt;br /&gt;
* '''push_back''' / strong&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Extra ====&lt;br /&gt;
&lt;br /&gt;
Try match your implementation on the functions predefined inside STL.&lt;br /&gt;
&lt;br /&gt;
Try to reduce boilerplate inside your implementation relying on the standard-library defined functions.&lt;br /&gt;
&lt;br /&gt;
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely.&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5747</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5747"/>
				<updated>2015-03-28T21:12:13Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* Весенний Семестр */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;br /&gt;
&lt;br /&gt;
== #4 Deque ==&lt;br /&gt;
&lt;br /&gt;
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements.&lt;br /&gt;
&lt;br /&gt;
At the very least, it should contain following members:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''push_front''&lt;br /&gt;
* ''pop_front''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''front''&lt;br /&gt;
* ''size''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
'''NB''': Implementing deque matching performance requirements of the STL one, try to minimize ''unused'' memory 'committed' by your implementation. &lt;br /&gt;
&lt;br /&gt;
If you consider that it's impossible, be ready to assure your point.&lt;br /&gt;
&lt;br /&gt;
== #5 Exceptions Guarantees ==&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5746</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5746"/>
				<updated>2015-03-28T21:05:30Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;br /&gt;
&lt;br /&gt;
== #3 Throwing Vector ==&lt;br /&gt;
&lt;br /&gt;
Now you've got an insight what the C++ exceptions are, implement all error handling inside your implementation of the `vector`, relying ''solely'' upon the exceptions mechanism.&lt;br /&gt;
&lt;br /&gt;
That means: no more `_Exit`s, `abort`s, etc. Exceptions '''only'''.&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5745</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5745"/>
				<updated>2015-03-28T21:01:23Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Осенний Семестр =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Весенний Семестр =&lt;br /&gt;
&lt;br /&gt;
== #2 Vector ==&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5744</id>
		<title>B0</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=B0&amp;diff=5744"/>
				<updated>2015-03-28T20:59:21Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: Новая страница: «== Осенний Семестр ==  TBD  == Весенний Семестр ==  === #2 Vector ===  ==== Part One ====  Implement vector-alike container matching…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Осенний Семестр ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
== Весенний Семестр ==&lt;br /&gt;
&lt;br /&gt;
=== #2 Vector ===&lt;br /&gt;
&lt;br /&gt;
==== Part One ====&lt;br /&gt;
&lt;br /&gt;
Implement vector-alike container matching performance requirements of the `std::vector`.&lt;br /&gt;
&lt;br /&gt;
It should contain implementation for the following methods matching behaviour of the ones of `std::vector`:&lt;br /&gt;
&lt;br /&gt;
* ''push_back''&lt;br /&gt;
* ''pop_back''&lt;br /&gt;
* ''insert''&lt;br /&gt;
* ''clear''&lt;br /&gt;
* ''resize''&lt;br /&gt;
* ''back''&lt;br /&gt;
* ''begin/rbegin''&lt;br /&gt;
* ''end/rend''&lt;br /&gt;
&lt;br /&gt;
As a reference consider [http://en.cppreference.com/w/cpp/container/vector en.cppreference.com].&lt;br /&gt;
&lt;br /&gt;
==== Part Two ====&lt;br /&gt;
&lt;br /&gt;
Implement '''specialization''' of already implemented (template-) container for the simple type `'''bool'''` being ''as compact as possible''.&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_2014/15&amp;diff=5743</id>
		<title>C++ 2014/15</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_2014/15&amp;diff=5743"/>
				<updated>2015-03-28T20:45:08Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: Новая страница: «Лектор -  Линский Евгений (&amp;lt;b&amp;gt;evgeny.linsky@gmail.com&amp;lt;/b&amp;gt;)  Практика - Кудинкин Алексей (&amp;lt;b&amp;gt;alexey.kudinkin@gmail.com&amp;lt;…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор -  Линский Евгений (&amp;lt;b&amp;gt;evgeny.linsky@gmail.com&amp;lt;/b&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Практика - Кудинкин Алексей (&amp;lt;b&amp;gt;alexey.kudinkin@gmail.com&amp;lt;/b&amp;gt;), Опейкин Александр (&amp;lt;b&amp;gt;alexander.opeykin@gmail.com&amp;lt;/b&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Trac ==&lt;br /&gt;
http://mit.spbau.ru/cpp14b&lt;br /&gt;
&lt;br /&gt;
'''NB''': ''Обязательно'' укажите адрес своей электронной почты для получения нотификаций.&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
http://mit.spbau.ru/cpp14b&lt;br /&gt;
&lt;br /&gt;
== Успеваемость == &lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/1K-pU-C1xTu1_2YgYtTEw5KgijySR4DkkAMXxt7ybDJ0/edit?usp=sharing Результаты]&lt;br /&gt;
&lt;br /&gt;
== Семинары ==&lt;br /&gt;
* Группа [[B0 | Алексея]]&lt;br /&gt;
* Группа [[B1 | Александра]]&lt;br /&gt;
&lt;br /&gt;
[[Category:5 курс. Осень 2014]]&lt;br /&gt;
[[Category:5 курс. Весна 2015]]&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SE_Wiki&amp;diff=5742</id>
		<title>SE Wiki</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SE_Wiki&amp;diff=5742"/>
				<updated>2015-03-28T20:13:27Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* 1 курс */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Учебная информация ==&lt;br /&gt;
&lt;br /&gt;
=== 1 курс ===&lt;br /&gt;
&lt;br /&gt;
Расписание: [[Медиа:Bach_2018_term1_it.pdf|программисты]],&lt;br /&gt;
[[Медиа:Bach_2018_term1_phys.pdf|физики]].&lt;br /&gt;
&lt;br /&gt;
* [[Алгебра, 2 семестр, 2014/15 | Алгебра]]&lt;br /&gt;
* [[Матан, 2 семестр, 2014/15 | Математический анализ]]&lt;br /&gt;
* [[algo_2014_2 | Алгоритмы]]&lt;br /&gt;
* [[Физика, 2 семестр, 2014/15 | Физика]]&lt;br /&gt;
* [[ C++ 2014/15 | C++ ]]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/11mWA_aEDujGANBmSKD0fMaTCw7Bdr8-INZpgV288uUQ/pubhtml?gid=0&amp;amp;single=true Контакты преподавателей]&lt;br /&gt;
&lt;br /&gt;
[[Бакалавриат, выпуск 2018, архив | Архив]]&lt;br /&gt;
&lt;br /&gt;
=== 5 курс ===&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1ZX__tJubEIG-irIl-1BxBLFg3l0tu2dhDreMpcbJHf8/pubhtml Расписание]&lt;br /&gt;
&lt;br /&gt;
[[Сессия]]&lt;br /&gt;
&lt;br /&gt;
* [[НИР_5SE_весна_2015|НИР]]&lt;br /&gt;
* [[Функциональное_программирование_2015|Функциональное программирование]]&lt;br /&gt;
* [[Java_2015|Java]]&lt;br /&gt;
* [[C++ 2014-2015|С++]]&lt;br /&gt;
* [[Алгоритмы_и_структуры_данных_2014|Алгоритмы и структуры данных]]&lt;br /&gt;
* [[Формальные_языки_2015|Формальные языки]]&lt;br /&gt;
* [[Машинное_обучение_2015|Машинное обучение]]&lt;br /&gt;
* [[Статистика_2015|Статистика и анализ данных]]&lt;br /&gt;
* [[Linux_kernel_2015|Программирование в ядре Linux]]&lt;br /&gt;
&lt;br /&gt;
=== DevDays spring 2015 ===&lt;br /&gt;
* [[Идеи на Devdays]]&lt;br /&gt;
* [[Странички проектов]]&lt;br /&gt;
&lt;br /&gt;
== Всякая информация ==&lt;br /&gt;
&lt;br /&gt;
На четвёртом этаже в комнате отдыха в шкафах у входа (снизу) лежит куча пилотов.&lt;br /&gt;
&lt;br /&gt;
Открытые исходящие порты в WirelessForAll: 22, 25, 80, 110, 443, 465, 993, 4244, 5190, 5222, 5242&lt;br /&gt;
&lt;br /&gt;
== Дни разработчика ==&lt;br /&gt;
* [[Devdays2h2012| Дни разработчика (Осень 2012)]]&lt;br /&gt;
* [[Devdays1h2013| Дни разработчика (Весна 2013)]]&lt;br /&gt;
* [[devdays_fall_2013| Дни разработчика (Осень 2013)]]&lt;br /&gt;
* [[devdays_spring_2014| Дни разработчика (Весна 2014)]]&lt;br /&gt;
* [[ prpojects_fall_2013|Странички проектов (Осень 2013)]]&lt;br /&gt;
* [[ prpojects_spring_2014|Страничка проектов (Весна 2014)]]&lt;br /&gt;
* [[devdays_fall_2014|Дни разработчика (Осень 2014)]]&lt;br /&gt;
* [[projects_fall_2014|Страничка проектов (Осень 2014)]]&lt;br /&gt;
&lt;br /&gt;
== Архив за прошлые семестры ==&lt;br /&gt;
* [[Осень_2014|Осенний семестр 2014]]&lt;br /&gt;
* [[Весна_2014|Весенний семестр 2014]]&lt;br /&gt;
* [[Осень_2013|Осенний семестр 2013]]&lt;br /&gt;
* [[Весна_2013|Весенний семестр 2013]]&lt;br /&gt;
* [[Осень_2012|Осенний семестр 2012]]&lt;br /&gt;
* [[Весна_2012|Весенний семестр 2012]]&lt;br /&gt;
* [[Осень_2011|Осенний семестр 2011]]&lt;br /&gt;
&lt;br /&gt;
== Практики ==&lt;br /&gt;
* [[НИР_5SE_осень_2014|Темы практик, осень 2014-го года]]&lt;br /&gt;
* [[НИР_5SE_весна_2014|Темы практик, весна 2014-го года]]&lt;br /&gt;
* [[НИР_5SE_осень_2013|Темы практик, осень 2013-го года]]&lt;br /&gt;
* [[НИР_5SE_весна_2013|Темы практик, весна 2013-го года]]&lt;br /&gt;
* [[НИР 5SE осень 2012|Темы практик, осень 2012-го года]]&lt;br /&gt;
* [https://docs.google.com/spreadsheet/pub?key=0Aif17q2hwUt4dG9CRFdGa2tLeV9ab1l1QWlkOFp3bFE&amp;amp;output=html Темы практик, лето 2012-го года]&lt;br /&gt;
* [[Темы практик, 5SE, осень 2011-го года | Темы практик, осень 2011-го года]]&lt;br /&gt;
* [[Темы практик |Темы практик, весна 2011-го года]]&lt;br /&gt;
&lt;br /&gt;
== Студенты ==&lt;br /&gt;
* [[2010|Набор 2010-го года]]&lt;br /&gt;
* [[2011|Набор 2011-го года]]&lt;br /&gt;
* [[2012|Набор 2012-го года]]&lt;br /&gt;
* [[2013|Набор 2013-го года]]&lt;br /&gt;
* [[2014|Набор 2014-го года]]&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
&lt;br /&gt;
== Дополнительно == &lt;br /&gt;
* [[Q&amp;amp;A]]&lt;br /&gt;
* [[Мероприятия]]&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4887</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4887"/>
				<updated>2014-11-21T10:10:14Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #12 big_int */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;br /&gt;
&lt;br /&gt;
== #9 Output streams ==&lt;br /&gt;
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0&lt;br /&gt;
&lt;br /&gt;
== #10 Arithmetic Operations ==&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать следующие узлы дерева арифметических операций:&lt;br /&gt;
&lt;br /&gt;
Сложение, Вычитание, Умножение, Деление, Деление по модулю, Литерал (константа).&lt;br /&gt;
&lt;br /&gt;
Каждый из узлов должен наследовать базовый класс (интерфейс `i_expr`):&lt;br /&gt;
&lt;br /&gt;
 struct i_expr &lt;br /&gt;
 {&lt;br /&gt;
   virtual void print(std::stringstream&amp;amp; s) = 0;&lt;br /&gt;
   virtual int eval() = 0;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
NB: Реализация, должна подразумевать возможность создания дерева динамически (с использованием оператора new). Hint: проверьте корректно ли освобождается память в вашей реализации.&lt;br /&gt;
&lt;br /&gt;
== #11 auto_ptr ==&lt;br /&gt;
&lt;br /&gt;
== #12 big_int ==&lt;br /&gt;
&lt;br /&gt;
Реализовать класс для работы с длинной арифметикой. Задание делится на две части: &lt;br /&gt;
&lt;br /&gt;
'#1 &lt;br /&gt;
 &lt;br /&gt;
 struct big_int&lt;br /&gt;
 {&lt;br /&gt;
   _?_ operator+(_?_ other);&lt;br /&gt;
   _?_ operator-(_?_ other);&lt;br /&gt;
   _?_ operator&amp;lt;(_?_ other);&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
'#2 &lt;br /&gt;
&lt;br /&gt;
 struct big_int&lt;br /&gt;
 {&lt;br /&gt;
   _?_ operator+(_?_ other);&lt;br /&gt;
   _?_ operator-(_?_ other);&lt;br /&gt;
   _?_ operator*(_?_ other);&lt;br /&gt;
   _?_ operator/(_?_ other);&lt;br /&gt;
   _?_ operator&amp;lt;(_?_ other);&lt;br /&gt;
 };&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4886</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4886"/>
				<updated>2014-11-21T10:06:21Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #12 big_int */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;br /&gt;
&lt;br /&gt;
== #9 Output streams ==&lt;br /&gt;
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0&lt;br /&gt;
&lt;br /&gt;
== #10 Arithmetic Operations ==&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать следующие узлы дерева арифметических операций:&lt;br /&gt;
&lt;br /&gt;
Сложение, Вычитание, Умножение, Деление, Деление по модулю, Литерал (константа).&lt;br /&gt;
&lt;br /&gt;
Каждый из узлов должен наследовать базовый класс (интерфейс `i_expr`):&lt;br /&gt;
&lt;br /&gt;
 struct i_expr &lt;br /&gt;
 {&lt;br /&gt;
   virtual void print(std::stringstream&amp;amp; s) = 0;&lt;br /&gt;
   virtual int eval() = 0;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
NB: Реализация, должна подразумевать возможность создания дерева динамически (с использованием оператора new). Hint: проверьте корректно ли освобождается память в вашей реализации.&lt;br /&gt;
&lt;br /&gt;
== #11 auto_ptr ==&lt;br /&gt;
&lt;br /&gt;
== #12 big_int ==&lt;br /&gt;
&lt;br /&gt;
Реализовать класс для работы с длинной арифметикой. Задание делится на две части: &lt;br /&gt;
&lt;br /&gt;
#1 &lt;br /&gt;
 &lt;br /&gt;
 struct big_int&lt;br /&gt;
 {&lt;br /&gt;
   _?_ operator+(_?_ other);&lt;br /&gt;
   _?_ operator-(_?_ other);&lt;br /&gt;
   _?_ operator&amp;lt;(_?_ other);&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
#2 &lt;br /&gt;
&lt;br /&gt;
 struct big_int&lt;br /&gt;
 {&lt;br /&gt;
   _?_ operator+(_?_ other);&lt;br /&gt;
   _?_ operator-(_?_ other);&lt;br /&gt;
   _?_ operator*(_?_ other);&lt;br /&gt;
   _?_ operator/(_?_ other);&lt;br /&gt;
   _?_ operator&amp;lt;(_?_ other);&lt;br /&gt;
 };&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4885</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4885"/>
				<updated>2014-11-21T10:05:54Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;br /&gt;
&lt;br /&gt;
== #9 Output streams ==&lt;br /&gt;
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0&lt;br /&gt;
&lt;br /&gt;
== #10 Arithmetic Operations ==&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать следующие узлы дерева арифметических операций:&lt;br /&gt;
&lt;br /&gt;
Сложение, Вычитание, Умножение, Деление, Деление по модулю, Литерал (константа).&lt;br /&gt;
&lt;br /&gt;
Каждый из узлов должен наследовать базовый класс (интерфейс `i_expr`):&lt;br /&gt;
&lt;br /&gt;
 struct i_expr &lt;br /&gt;
 {&lt;br /&gt;
   virtual void print(std::stringstream&amp;amp; s) = 0;&lt;br /&gt;
   virtual int eval() = 0;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
NB: Реализация, должна подразумевать возможность создания дерева динамически (с использованием оператора new). Hint: проверьте корректно ли освобождается память в вашей реализации.&lt;br /&gt;
&lt;br /&gt;
== #11 auto_ptr ==&lt;br /&gt;
&lt;br /&gt;
== #12 big_int ==&lt;br /&gt;
&lt;br /&gt;
Реализовать класс для работы с длинной арифметикой. Задание делится на две части: &lt;br /&gt;
&lt;br /&gt;
#1 &lt;br /&gt;
 &lt;br /&gt;
 struct big_int&lt;br /&gt;
 {&lt;br /&gt;
   _?_ operator+(_?_ other);&lt;br /&gt;
   _?_ operator-(_?_ other);&lt;br /&gt;
&lt;br /&gt;
   _?_ operator&amp;lt;(_?_ other);&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
#2 &lt;br /&gt;
&lt;br /&gt;
 struct big_int&lt;br /&gt;
 {&lt;br /&gt;
   _?_ operator+(_?_ other);&lt;br /&gt;
   _?_ operator-(_?_ other);&lt;br /&gt;
&lt;br /&gt;
   _?_ operator*(_?_ other);&lt;br /&gt;
   _?_ operator/(_?_ other);&lt;br /&gt;
&lt;br /&gt;
   _?_ operator&amp;lt;(_?_ other);&lt;br /&gt;
 };&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4857</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4857"/>
				<updated>2014-11-18T18:01:34Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #5 Intrusive Lists */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;br /&gt;
&lt;br /&gt;
== #9 Output streams ==&lt;br /&gt;
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0&lt;br /&gt;
&lt;br /&gt;
== #10 Arithmetic Operations ==&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать следующие узлы дерева арифметических операций:&lt;br /&gt;
&lt;br /&gt;
Сложение, Вычитание, Умножение, Деление, Деление по модулю, Литерал (константа).&lt;br /&gt;
&lt;br /&gt;
Каждый из узлов должен наследовать базовый класс (интерфейс `i_expr`):&lt;br /&gt;
&lt;br /&gt;
 struct i_expr &lt;br /&gt;
 {&lt;br /&gt;
   virtual void print(std::stringstream&amp;amp; s) = 0;&lt;br /&gt;
   virtual int eval() = 0;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
NB: Реализация, должна подразумевать возможность создания дерева динамически (с использованием оператора new). Hint: проверьте корректно ли освобождается память в вашей реализации.&lt;br /&gt;
&lt;br /&gt;
== #11 auto_ptr ==&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4843</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4843"/>
				<updated>2014-11-15T03:35:18Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #10 Arithmetic Operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;br /&gt;
&lt;br /&gt;
== #9 Output streams ==&lt;br /&gt;
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0&lt;br /&gt;
&lt;br /&gt;
== #10 Arithmetic Operations ==&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать следующие узлы дерева арифметических операций:&lt;br /&gt;
&lt;br /&gt;
Сложение, Вычитание, Умножение, Деление, Деление по модулю, Литерал (константа).&lt;br /&gt;
&lt;br /&gt;
Каждый из узлов должен наследовать базовый класс (интерфейс `i_expr`):&lt;br /&gt;
&lt;br /&gt;
 struct i_expr &lt;br /&gt;
 {&lt;br /&gt;
   virtual void print(std::stringstream&amp;amp; s) = 0;&lt;br /&gt;
   virtual int eval() = 0;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
NB: Реализация, должна подразумевать возможность создания дерева динамически (с использованием оператора new). Hint: проверьте корректно ли освобождается память в вашей реализации.&lt;br /&gt;
&lt;br /&gt;
== #11 auto_ptr ==&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4842</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4842"/>
				<updated>2014-11-15T03:34:41Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #10 Arithmetic Operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;br /&gt;
&lt;br /&gt;
== #9 Output streams ==&lt;br /&gt;
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0&lt;br /&gt;
&lt;br /&gt;
== #10 Arithmetic Operations ==&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать следующие узлы дерева арифметических операций:&lt;br /&gt;
&lt;br /&gt;
Сложение, Вычитание, Умножение, Деление, Деление по модулю, Литерал (константа).&lt;br /&gt;
&lt;br /&gt;
Каждый из узлов должен наследовать базовый класс (интерфейс `i_expr`):&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
struct i_expr &lt;br /&gt;
{&lt;br /&gt;
  virtual void print(std::stringstream&amp;amp; s) = 0;&lt;br /&gt;
  virtual int eval() = 0;&lt;br /&gt;
};&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
NB: Реализация, должна подразумевать возможность создания дерева динамически (с использованием оператора new). Hint: проверьте корректно ли освобождается память в вашей реализации.&lt;br /&gt;
&lt;br /&gt;
== #11 auto_ptr ==&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4841</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4841"/>
				<updated>2014-11-15T03:33:45Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;br /&gt;
&lt;br /&gt;
== #9 Output streams ==&lt;br /&gt;
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0&lt;br /&gt;
&lt;br /&gt;
== #10 Arithmetic Operations ==&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать следующие узлы дерева арифметических операций:&lt;br /&gt;
&lt;br /&gt;
Сложение, Вычитание, Умножение, Деление, Деление по модулю, Литерал (константа).&lt;br /&gt;
&lt;br /&gt;
Каждый из узлов должен наследовать базовый класс (интерфейс `i_expr`):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
struct i_expr &lt;br /&gt;
{&lt;br /&gt;
  virtual void print(std::stringstream&amp;amp; s) = 0;&lt;br /&gt;
  virtual int eval() = 0;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: Реализация, должна подразумевать возможность создания дерева динамически (с использованием оператора new). Hint: проверьте корректно ли освобождается память в вашей реализации.&lt;br /&gt;
&lt;br /&gt;
== #11 auto_ptr ==&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4589</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4589"/>
				<updated>2014-10-31T09:33:08Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #9 Output streams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;br /&gt;
&lt;br /&gt;
== #9 Output streams ==&lt;br /&gt;
https://www.dropbox.com/s/klw6db7f18m1tgl/output_stream.h?dl=0&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4588</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4588"/>
				<updated>2014-10-31T09:29:30Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;br /&gt;
&lt;br /&gt;
== #9 Output streams ==&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4508</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4508"/>
				<updated>2014-10-24T20:30:53Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists ==&lt;br /&gt;
&lt;br /&gt;
== #6 C IO ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #7 Pseudo XML ==&lt;br /&gt;
&lt;br /&gt;
== #8 Hash table ==&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4507</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4507"/>
				<updated>2014-10-24T20:23:56Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists &amp;amp; Co. ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4471</id>
		<title>C++ Практические задания Группа №1</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C%2B%2B_%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0_%E2%84%961&amp;diff=4471"/>
				<updated>2014-10-24T11:21:28Z</updated>
		
		<summary type="html">&lt;p&gt;Alexey.kudinkin: /* #5 Intrusive Lists &amp;amp; Co. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
[mailto:alexey.kudinkin@gmail.com alexey.kudinkin@gmail.com]&lt;br /&gt;
&lt;br /&gt;
+7-911-748-38-35&lt;br /&gt;
&lt;br /&gt;
== #1: Find all the problems == &lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/s/26j3j6kata8jiqu/challenge.cc?dl=0&lt;br /&gt;
&lt;br /&gt;
== #2: Get it compiled! ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/izpca2efj2htdy2/AAB4Uj-vj7oBknJo9QOLF3UJa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #3 Pointers ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/k3glgu3wyut3otq/AAAO1MejOgQFuvsVSQ5r0Ktda?dl=0&lt;br /&gt;
&lt;br /&gt;
== #4 Vector ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/plc204mdal7jb7z/AABlZIUsO1_3_wyH0TX0UdfNa?dl=0&lt;br /&gt;
&lt;br /&gt;
== #5 Intrusive Lists &amp;amp; Co. ==&lt;br /&gt;
&lt;br /&gt;
Задание предполагает, что файлы на вход программы будут поступать только файлы правильного формата.&lt;br /&gt;
&lt;br /&gt;
Формат текстового файла:&lt;br /&gt;
Каждый элемент списка на новой строке: числа x и y разделены пробелом&lt;br /&gt;
&lt;br /&gt;
Формат бинарного файла: &lt;br /&gt;
Каждое число занимает не больше 3 байт (hint: |, &amp;amp;, &amp;gt;&amp;gt;, &amp;lt;&amp;lt;)&lt;br /&gt;
&lt;br /&gt;
Вспомогательные материалы:&lt;br /&gt;
https://www.dropbox.com/sh/kp0jdgy97p3sjg9/AAAr5g7a8Ufg7zikE2spCmBJa?dl=0&lt;br /&gt;
&lt;br /&gt;
=== Параметры === &lt;br /&gt;
 ./p {loadtxt | loadbin} infile {savetxt | savebin} outfile&lt;br /&gt;
 ./p {loadtxt | loadbin} infile print “fmt”&lt;br /&gt;
 ./p {loadtxt | loadbin} infile count&lt;br /&gt;
&lt;br /&gt;
#'''loadtxt''' загружает из текстового файл&lt;br /&gt;
#'''loadbin''' загружает из бинарного файла&lt;br /&gt;
#'''savetxt''' записывает в текстовый файл&lt;br /&gt;
#'''savebin''' записывает в бинарный файл&lt;br /&gt;
#'''print''' “fmt” выводит в stdout ранее прочитанное отформатированные согласно &amp;quot;fmt&amp;quot; (пример fmt: “(%d %d)”, “[%#x %#x]\n”)&lt;br /&gt;
#'''count''' выводит размер прочитанного корпуса&lt;br /&gt;
&lt;br /&gt;
== #6 Input/Output ==&lt;br /&gt;
&lt;br /&gt;
https://www.dropbox.com/sh/u5feahsavqykw02/AACW7NafrtgZOvOEGFEuS3Qsa?dl=0&lt;/div&gt;</summary>
		<author><name>Alexey.kudinkin</name></author>	</entry>

	</feed>