A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FList%2Flist</id>
		<title>C++/List/list - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FList%2Flist"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/List/list&amp;action=history"/>
		<updated>2026-04-18T18:43:40Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/List/list&amp;diff=1849&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/List/list&amp;diff=1849&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/List/list&amp;diff=1850&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/List/list&amp;diff=1850&amp;oldid=prev"/>
				<updated>2010-05-25T10:28:01Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==access list==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
using std::set;&lt;br /&gt;
using std::string;&lt;br /&gt;
using std::list;&lt;br /&gt;
class AccessList&lt;br /&gt;
{&lt;br /&gt;
 public:&lt;br /&gt;
  AccessList() {}&lt;br /&gt;
  void addUser(const string&amp;amp; user);&lt;br /&gt;
  void removeUser(const string&amp;amp; user);&lt;br /&gt;
  bool isAllowed(const string&amp;amp; user) const;&lt;br /&gt;
  list&amp;lt;string&amp;gt; getAllUsers() const;&lt;br /&gt;
 protected:&lt;br /&gt;
  set&amp;lt;string&amp;gt; mAllowed;&lt;br /&gt;
};&lt;br /&gt;
void AccessList::addUser(const string&amp;amp; user)&lt;br /&gt;
{&lt;br /&gt;
  mAllowed.insert(user);&lt;br /&gt;
}&lt;br /&gt;
void AccessList::removeUser(const string&amp;amp; user)&lt;br /&gt;
{&lt;br /&gt;
  mAllowed.erase(user);&lt;br /&gt;
}&lt;br /&gt;
bool AccessList::isAllowed(const string&amp;amp; user) const&lt;br /&gt;
{&lt;br /&gt;
  return (mAllowed.count(user) == 1);&lt;br /&gt;
}&lt;br /&gt;
list&amp;lt;string&amp;gt; AccessList::getAllUsers() const&lt;br /&gt;
{&lt;br /&gt;
  list&amp;lt;string&amp;gt; users;&lt;br /&gt;
  users.insert(users.end(), mAllowed.begin(), mAllowed.end());&lt;br /&gt;
  return (users);&lt;br /&gt;
}&lt;br /&gt;
int main(int argc, char** argv)&lt;br /&gt;
{&lt;br /&gt;
  AccessList fileX;&lt;br /&gt;
  fileX.addUser(&amp;quot;A&amp;quot;);&lt;br /&gt;
  fileX.addUser(&amp;quot;B&amp;quot;);&lt;br /&gt;
  fileX.addUser(&amp;quot;C&amp;quot;);&lt;br /&gt;
  fileX.removeUser(&amp;quot;D&amp;quot;);&lt;br /&gt;
  if (fileX.isAllowed(&amp;quot;A&amp;quot;)) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;nsolter has permissions\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  if (fileX.isAllowed(&amp;quot;B&amp;quot;)) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;baduser has permissions\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  list&amp;lt;string&amp;gt; users = fileX.getAllUsers();&lt;br /&gt;
  for (list&amp;lt;string&amp;gt;::const_iterator it = users.begin();&lt;br /&gt;
       it != users.end(); ++it) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; *it &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
  return (0);&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Add elements in a multiset to a list==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cassert&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  string s(&amp;quot;There is no distinctly native American criminal class&amp;quot;);&lt;br /&gt;
  list&amp;lt;char&amp;gt; list1(s.begin(), s.end());&lt;br /&gt;
  // Put the characters in list1 into multiset1:&lt;br /&gt;
  multiset&amp;lt;char&amp;gt; multiset1;&lt;br /&gt;
  list&amp;lt;char&amp;gt;::iterator i;&lt;br /&gt;
  for (i = list1.begin(); i != list1.end(); ++i)&lt;br /&gt;
    multiset1.insert(*i);&lt;br /&gt;
  // Put the characters in multiset1 into list2:&lt;br /&gt;
  list&amp;lt;char&amp;gt; list2;&lt;br /&gt;
  multiset&amp;lt;char&amp;gt;::iterator k;&lt;br /&gt;
  for (k = multiset1.begin(); k != multiset1.end(); ++k)&lt;br /&gt;
    list2.push_back(*k);&lt;br /&gt;
&lt;br /&gt;
  for (i = list2.begin(); i != list2.end(); ++i)&lt;br /&gt;
    cout &amp;lt;&amp;lt; *i;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
/* &lt;br /&gt;
       ATaaaaccccdeeeehiiiiiiilllmmnnnnnorrrsssstttvy&amp;quot;&lt;br /&gt;
 */        &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Add elements in a set to a list==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cassert&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;set&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  string s(&amp;quot;There is no distinctly native American criminal class&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  list&amp;lt;char&amp;gt; list1(s.begin(), s.end());&lt;br /&gt;
  // Put the characters in list1 into set1:&lt;br /&gt;
  set&amp;lt;char&amp;gt; set1;&lt;br /&gt;
  list&amp;lt;char&amp;gt;::iterator i;&lt;br /&gt;
  for (i = list1.begin(); i != list1.end(); ++i)&lt;br /&gt;
    set1.insert(*i);&lt;br /&gt;
  set&amp;lt;char&amp;gt;::iterator j;&lt;br /&gt;
  list&amp;lt;char&amp;gt; list2;&lt;br /&gt;
  set&amp;lt;char&amp;gt;::iterator k;&lt;br /&gt;
  for (k = set1.begin(); k != set1.end(); ++k)&lt;br /&gt;
    list2.push_back(*k);&lt;br /&gt;
&lt;br /&gt;
  for (i = list2.begin(); i != list2.end(); ++i)&lt;br /&gt;
    cout &amp;lt;&amp;lt; *i;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
/* &lt;br /&gt;
 ATacdehilmnorstvy&lt;br /&gt;
 */        &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Comparison Algorithms==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main(int argc, char** argv)&lt;br /&gt;
{&lt;br /&gt;
  vector&amp;lt;int&amp;gt; myVector;&lt;br /&gt;
  list&amp;lt;int&amp;gt; myList;&lt;br /&gt;
  myVector.push_back(1);&lt;br /&gt;
  myVector.push_back(2);&lt;br /&gt;
  myVector.push_back(3);&lt;br /&gt;
  &lt;br /&gt;
  myList.push_back(1);&lt;br /&gt;
  myList.push_back(2);&lt;br /&gt;
  myList.push_back(3);&lt;br /&gt;
  &lt;br /&gt;
  if (myList.size() &amp;lt; myVector.size()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Sorry, the list is not long enough.\n&amp;quot;;&lt;br /&gt;
    return (0);&lt;br /&gt;
  }&lt;br /&gt;
  if (equal(myVector.begin(), myVector.end(), myList.begin())) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;The two containers have equal elements\n&amp;quot;;&lt;br /&gt;
  } &lt;br /&gt;
  if (lexicographical_compare(myVector.begin(), myVector.end(), myList.begin(),myList.end())) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;The vector is lexicographically first.\n&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;The list is lexicographically first.\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  return (0);&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Instantiating an STL List of Integers==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
    using namespace std;&lt;br /&gt;
    list &amp;lt;int&amp;gt; listIntegers;&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Merge two lists.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
   &lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  list&amp;lt;int&amp;gt; lst1, lst2;&lt;br /&gt;
  int i;&lt;br /&gt;
   &lt;br /&gt;
  for(i=0; i&amp;lt;10; i+=2) lst1.push_back(i);&lt;br /&gt;
  for(i=1; i&amp;lt;11; i+=2) lst2.push_back(i);&lt;br /&gt;
   &lt;br /&gt;
  list&amp;lt;int&amp;gt;::iterator p = lst1.begin();&lt;br /&gt;
  while(p != lst1.end()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; *p &amp;lt;&amp;lt; endl;&lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
   &lt;br /&gt;
  p = lst2.begin();&lt;br /&gt;
  while(p != lst2.end()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; *p &amp;lt;&amp;lt; endl;&lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
   &lt;br /&gt;
  lst1.merge(lst2);&lt;br /&gt;
  if(lst2.empty())&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;lst2 is now empty\n&amp;quot;;&lt;br /&gt;
   &lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Contents of lst1 after merge:\n&amp;quot;;&lt;br /&gt;
  p = lst1.begin();&lt;br /&gt;
  while(p != lst1.end()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; *p &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
   &lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pass list to a function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using std::cout;&lt;br /&gt;
using std::endl;&lt;br /&gt;
#include &amp;lt;list&amp;gt;      // list class-template definition&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt; // copy algorithm&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;  // ostream_iterator&lt;br /&gt;
template &amp;lt; typename T &amp;gt; void printList( const std::list&amp;lt; T &amp;gt; &amp;amp;listRef );&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   int array[ 4 ] = { 2, 6, 4, 8 };&lt;br /&gt;
   std::list&amp;lt; int &amp;gt; values;      // create list of ints&lt;br /&gt;
   std::list&amp;lt; int &amp;gt; otherValues; // create list of ints&lt;br /&gt;
   // insert items in values&lt;br /&gt;
   values.push_front( 1 );&lt;br /&gt;
   values.push_front( 2 );&lt;br /&gt;
   values.push_back( 4 );&lt;br /&gt;
   values.push_back( 3 );&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;values contains: &amp;quot;;&lt;br /&gt;
   printList( values );&lt;br /&gt;
   cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
template &amp;lt; typename T &amp;gt; void printList( const std::list&amp;lt; T &amp;gt; &amp;amp;listRef )&lt;br /&gt;
{&lt;br /&gt;
    std::ostream_iterator&amp;lt; T &amp;gt; output( cout, &amp;quot; &amp;quot; );&lt;br /&gt;
    std::copy( listRef.begin(), listRef.end(), output );&lt;br /&gt;
}&lt;br /&gt;
 /* &lt;br /&gt;
values contains: 2 1 4 3&lt;br /&gt;
 */       &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Store class objects in a list==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class MyClass {&lt;br /&gt;
  int a, b;&lt;br /&gt;
  int sum;&lt;br /&gt;
public:&lt;br /&gt;
  MyClass() {&lt;br /&gt;
      a = b = 0;&lt;br /&gt;
  }&lt;br /&gt;
  MyClass(int i, int j) {&lt;br /&gt;
    a = i;&lt;br /&gt;
    b = j;&lt;br /&gt;
    sum = a + b;&lt;br /&gt;
  }&lt;br /&gt;
  int getsum() {&lt;br /&gt;
      return sum;&lt;br /&gt;
  }&lt;br /&gt;
  friend bool operator&amp;lt;(const MyClass &amp;amp;o1,const MyClass &amp;amp;o2);&lt;br /&gt;
  friend bool operator&amp;gt;(const MyClass &amp;amp;o1,const MyClass &amp;amp;o2);&lt;br /&gt;
  friend bool operator==(const MyClass &amp;amp;o1,const MyClass &amp;amp;o2);&lt;br /&gt;
  friend bool operator!=(const MyClass &amp;amp;o1,const MyClass &amp;amp;o2);&lt;br /&gt;
};&lt;br /&gt;
bool operator&amp;lt;(const MyClass &amp;amp;o1, const MyClass &amp;amp;o2)&lt;br /&gt;
{&lt;br /&gt;
  return o1.sum &amp;lt; o2.sum;&lt;br /&gt;
}&lt;br /&gt;
bool operator&amp;gt;(const MyClass &amp;amp;o1, const MyClass &amp;amp;o2)&lt;br /&gt;
{&lt;br /&gt;
  return o1.sum &amp;gt; o2.sum;&lt;br /&gt;
}&lt;br /&gt;
bool operator==(const MyClass &amp;amp;o1, const MyClass &amp;amp;o2)&lt;br /&gt;
{&lt;br /&gt;
  return o1.sum == o2.sum;&lt;br /&gt;
}&lt;br /&gt;
bool operator!=(const MyClass &amp;amp;o1, const MyClass &amp;amp;o2)&lt;br /&gt;
{&lt;br /&gt;
  return o1.sum != o2.sum;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  list&amp;lt;MyClass&amp;gt; lst1;&lt;br /&gt;
  for(int i=0; i&amp;lt;10; i++) lst1.push_back(MyClass(i, i));&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;First list: &amp;quot;;&lt;br /&gt;
  list&amp;lt;MyClass&amp;gt;::iterator p = lst1.begin();&lt;br /&gt;
  while(p != lst1.end()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; p-&amp;gt;getsum() &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
  // create a second list&lt;br /&gt;
  list&amp;lt;MyClass&amp;gt; lst2;&lt;br /&gt;
  for(int i=0; i&amp;lt;10; i++) lst2.push_back(MyClass(i*2, i*3));&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Second list: &amp;quot;;&lt;br /&gt;
  p = lst2.begin();&lt;br /&gt;
  while(p != lst2.end()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; p-&amp;gt;getsum() &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
  lst1.merge(lst2);&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Merged list: &amp;quot;;&lt;br /&gt;
  p = lst1.begin();&lt;br /&gt;
  while(p != lst1.end()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; p-&amp;gt;getsum() &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
/* &lt;br /&gt;
First list: 0 2 4 6 8 10 12 14 16 18&lt;br /&gt;
Second list: 0 5 10 15 20 25 30 35 40 45&lt;br /&gt;
Merged list: 0 0 2 4 5 6 8 10 10 12 14 15 16 18 20 25 30 35 40 45 &lt;br /&gt;
*/       &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Store class objects with overloaded operators in a list.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
   &lt;br /&gt;
class myclass {&lt;br /&gt;
  int a, b;&lt;br /&gt;
  int sum;&lt;br /&gt;
public:&lt;br /&gt;
  myclass() { a = b = 0; }&lt;br /&gt;
  myclass(int i, int j) {&lt;br /&gt;
    a = i;&lt;br /&gt;
    b = j;&lt;br /&gt;
    sum = a + b;&lt;br /&gt;
  }&lt;br /&gt;
  int getsum() { return sum; }&lt;br /&gt;
   &lt;br /&gt;
  friend bool operator&amp;lt;(const myclass &amp;amp;o1,const myclass &amp;amp;o2);&lt;br /&gt;
  friend bool operator&amp;gt;(const myclass &amp;amp;o1,const myclass &amp;amp;o2);&lt;br /&gt;
  friend bool operator==(const myclass &amp;amp;o1,const myclass &amp;amp;o2);&lt;br /&gt;
  friend bool operator!=(const myclass &amp;amp;o1,const myclass &amp;amp;o2);&lt;br /&gt;
};&lt;br /&gt;
   &lt;br /&gt;
bool operator&amp;lt;(const myclass &amp;amp;o1, const myclass &amp;amp;o2)&lt;br /&gt;
{&lt;br /&gt;
  return o1.sum &amp;lt; o2.sum;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
bool operator&amp;gt;(const myclass &amp;amp;o1, const myclass &amp;amp;o2)&lt;br /&gt;
{&lt;br /&gt;
  return o1.sum &amp;gt; o2.sum;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
bool operator==(const myclass &amp;amp;o1, const myclass &amp;amp;o2)&lt;br /&gt;
{&lt;br /&gt;
  return o1.sum == o2.sum;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
bool operator!=(const myclass &amp;amp;o1, const myclass &amp;amp;o2)&lt;br /&gt;
{&lt;br /&gt;
  return o1.sum != o2.sum;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
   &lt;br /&gt;
  list&amp;lt;myclass&amp;gt; lst1;&lt;br /&gt;
  for(i=0; i&amp;lt;10; i++) lst1.push_back(myclass(i, i));&lt;br /&gt;
   &lt;br /&gt;
  list&amp;lt;myclass&amp;gt;::iterator p = lst1.begin();&lt;br /&gt;
  while(p != lst1.end()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; p-&amp;gt;getsum() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
   &lt;br /&gt;
  list&amp;lt;myclass&amp;gt; lst2;&lt;br /&gt;
  for(i=0; i&amp;lt;10; i++) lst2.push_back(myclass(i*2, i*3));&lt;br /&gt;
   &lt;br /&gt;
  p = lst2.begin();&lt;br /&gt;
  while(p != lst2.end()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; p-&amp;gt;getsum() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
   &lt;br /&gt;
  // now, merget lst1 and lst2&lt;br /&gt;
  lst1.merge(lst2);&lt;br /&gt;
   &lt;br /&gt;
  p = lst1.begin();&lt;br /&gt;
  while(p != lst1.end()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; p-&amp;gt;getsum() &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    p++;&lt;br /&gt;
  }&lt;br /&gt;
   &lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use generic list to create a list of chars==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cassert&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;  // For reverse&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  char x[5] = {&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;};&lt;br /&gt;
  list&amp;lt;char&amp;gt; list1(&amp;amp;x[0], &amp;amp;x[5]);&lt;br /&gt;
&lt;br /&gt;
  reverse(list1.begin(), list1.end());&lt;br /&gt;
  list&amp;lt;char&amp;gt;::iterator i;&lt;br /&gt;
  cout.precision(10);&lt;br /&gt;
  for (i = list1.begin(); i != list1.end(); ++i)&lt;br /&gt;
    cout &amp;lt;&amp;lt; *i &amp;lt;&amp;lt; endl;&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
/* &lt;br /&gt;
e&lt;br /&gt;
d&lt;br /&gt;
c&lt;br /&gt;
b&lt;br /&gt;
a&lt;br /&gt;
*/        &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use generic list to create list of strings==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cassert&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;  // For reverse&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  string x[5] = {&amp;quot;asdf&amp;quot;, &amp;quot;1234&amp;quot;, &amp;quot;2345&amp;quot;, &amp;quot;6789&amp;quot;, &amp;quot;0000&amp;quot;};&lt;br /&gt;
  list&amp;lt;string&amp;gt; list1(&amp;amp;x[0], &amp;amp;x[5]);&lt;br /&gt;
&lt;br /&gt;
  reverse(list1.begin(), list1.end());&lt;br /&gt;
  list&amp;lt;string&amp;gt;::iterator i;&lt;br /&gt;
  cout.precision(10);&lt;br /&gt;
  for (i = list1.begin(); i != list1.end(); ++i)&lt;br /&gt;
    cout &amp;lt;&amp;lt; *i &amp;lt;&amp;lt; endl;&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
 /* &lt;br /&gt;
0000&lt;br /&gt;
6789&lt;br /&gt;
2345&lt;br /&gt;
1234&lt;br /&gt;
asdf&lt;br /&gt;
&lt;br /&gt;
 */       &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Uses ostream_iterator and copy algorithm to output list elements==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using std::cout;&lt;br /&gt;
using std::endl;&lt;br /&gt;
#include &amp;lt;list&amp;gt;      &lt;br /&gt;
#include &amp;lt;algorithm&amp;gt; &lt;br /&gt;
#include &amp;lt;iterator&amp;gt;  &lt;br /&gt;
template &amp;lt; typename T &amp;gt; void printList( const std::list&amp;lt; T &amp;gt; &amp;amp;listRef );&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   int array[ 4 ] = { 2, 6, 4, 8 };&lt;br /&gt;
   std::list&amp;lt; int &amp;gt; values;      &lt;br /&gt;
   std::list&amp;lt; int &amp;gt; otherValues; &lt;br /&gt;
   values.push_front( 1 );&lt;br /&gt;
   values.push_front( 2 );&lt;br /&gt;
   values.push_back( 4 );&lt;br /&gt;
   values.push_back( 3 );&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;values contains: &amp;quot;;&lt;br /&gt;
   printList( values );&lt;br /&gt;
   cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
template &amp;lt; typename T &amp;gt; void printList( const std::list&amp;lt; T &amp;gt; &amp;amp;listRef )&lt;br /&gt;
{&lt;br /&gt;
    std::ostream_iterator&amp;lt; T &amp;gt; output( cout, &amp;quot; &amp;quot; );&lt;br /&gt;
    std::copy( listRef.begin(), listRef.end(), output );&lt;br /&gt;
}&lt;br /&gt;
/* &lt;br /&gt;
values contains: 2 1 4 3&lt;br /&gt;
 */        &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use std::copy to print all elements in a list==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using std::cout;&lt;br /&gt;
using std::endl;&lt;br /&gt;
#include &amp;lt;list&amp;gt;      // list class-template definition&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt; // copy algorithm&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;  // ostream_iterator&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   int array[ 4 ] = { 2, 6, 4, 8 };&lt;br /&gt;
   std::list&amp;lt; int &amp;gt; values;      // create list of ints&lt;br /&gt;
   std::list&amp;lt; int &amp;gt; otherValues; // create list of ints&lt;br /&gt;
   // insert items in values&lt;br /&gt;
   values.push_front( 1 );&lt;br /&gt;
   values.push_front( 2 );&lt;br /&gt;
   values.push_back( 4 );&lt;br /&gt;
   values.push_back( 3 );&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;values contains: &amp;quot;;&lt;br /&gt;
   std::ostream_iterator&amp;lt; int &amp;gt; output( cout, &amp;quot; &amp;quot; );&lt;br /&gt;
   std::copy( values.begin(), values.end(), output );&lt;br /&gt;
   cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
 /* &lt;br /&gt;
values contains: 2 1 4 3&lt;br /&gt;
 */       &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using the list as a container for double value==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;list&amp;gt;&lt;br /&gt;
#include &amp;lt;numeric&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
void print(const list&amp;lt;double&amp;gt; &amp;amp;lst)&lt;br /&gt;
{                &lt;br /&gt;
   list&amp;lt;double&amp;gt;::const_iterator p;&lt;br /&gt;
   for (p = lst.begin();&lt;br /&gt;
        p !=lst.end(); ++p)&lt;br /&gt;
      cout &amp;lt;&amp;lt; *p &amp;lt;&amp;lt; endl;&lt;br /&gt;
   cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   double w[4] = { 0.9, 0.8, 88, -99.99 };&lt;br /&gt;
   list&amp;lt;double&amp;gt; z;&lt;br /&gt;
   for( int i = 0; i &amp;lt; 4; ++i)&lt;br /&gt;
      z.push_front(w[i]);&lt;br /&gt;
   print(z);&lt;br /&gt;
   z.sort();&lt;br /&gt;
   print(z);&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;sum is &amp;quot;&lt;br /&gt;
        &amp;lt;&amp;lt; accumulate(z.begin(), z.end(), 0.0)&lt;br /&gt;
        &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>