Вопрос : Помогите мне понять почему одно Кодий более лучшее чем другое .....

И Кодий #1 и Кодий #2 достигают такого же результата.  Мне нужно вникание помощи почему одно может быть более лучшим чем other. class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
>CODE #1 " class= " id= " codeSnippet835862
 #include
 #include
 #include
 #include
 #include
 #include
 #include

using namespace std;

struct StudentAttempt
{
   расстояние int;
   studentName шнура;
};

cmpAttempts bool (StudentAttempt ое, право StudentAttempt) {
   если (left.distance < right.distance) {, то
      возвращенно true;
   }
   еще если (== right.distance left.distance) {, то
      если (left.studentName < right.studentName) {, то
         возвращенно true;
      }
      еще
         возвращенное ложное;
   }
   еще
      возвращенное ложное;
}

bool isDistEqual (StudentAttempt ое, право StudentAttempt) {
   возвратите (== right.distance left.distance
      && left.studentName! = right.studentName);
}

size_t printAllEqual (vector& v const, StudentAttempt& sa const, stringstream& ss) {

   vector:: const_iterator iий = v.begin ();
  size_t sz = 0;
  bFirst bool = true;

  пока (I! = v.end ()) {

    если (isDistEqual, то (*i, sa)) {
    
      если (! bFirst) ss << «,»;
      ss << i->studentName;
      ++sz;
    }

    ++i; 
    bFirst = ложно;
  }

  возвращенный sz;
}
 

основа int () {

   throwDist StudentAttempt [] = {
      {50, «A»}, {22, «A»}, {16, «B»}, {44, «C»},
      {33, «D»}, {34, «E»}, {22, «F»}, {21, «G»},
      {49, «A»}, {5, «B»}, {2, «C»}, {22, «A»},
      {33, «B»}, {22, «C»}, {22, «D»}, {44, «E»},
   };

   обращанное set;

   int len = sizeof) (throwDist/sizeof (throwDist [0]);
   dist vector (throwDist, throwDist + len);
   vector:: iterator оно = dist.begin ();

   вид (dist.begin (), dist.end (), cmpAttempts);
   //unique (dist.begin (), dist.end (), cmpDist);


   для (; оно! = dist.end (); it++) {

      stringstream ss;

      pair:: iterator, bool> p = handled.insert (it->distance);

      если (! p.second) продолжаются; уже обращанное //

      если (0 < printAllEqual, то (dist, *it, ss)) 
        cout << setw (2) << (*it) .distance 
           << «ноги:  » << (*it) .studentName << ss.str () << endl;
   }
}

КОДИЙ #2:
 #include
 #include
 #include
 #include
 #include
 #include
 #include

using namespace std;

struct StudentAttempt
{
   расстояние int;
   studentName шнура;
};

 cmpAttempts bool (StudentAttempt ое, право StudentAttempt) {
   если (left.distance < right.distance), то 
   {
      возвращенно true;
   }
   еще если (== right.distance left.distance), то 
   {
      если (left.studentName < right.studentName), то 
	  {
         возвращенно true;
      }
      еще
         возвращенное ложное;
   }
   еще
      возвращенное ложное;
}

основа int () {

   throwDist StudentAttempt [] = {
      {50, «A»}, {22, «A»}, {16, «B»}, {44, «C»},
      {33, «D»}, {34, «E»}, {22, «F»}, {21, «G»},
      {49, «A»}, {5, «B»}, {2, «C»}, {22, «A»},
      {33, «B»}, {22, «C»}, {22, «D»}, {44, «E»},
   };

   обращанное set;

   int len = sizeof) (throwDist/sizeof (throwDist [0]);
   dist vector (throwDist, throwDist + len);
   vector:: iterator оно = dist.begin ();

   вид (dist.begin (), dist.end (), cmpAttempts);
   //unique (dist.begin (), dist.end (), cmpDist);

   int x;
  для (x=0; x < dist.size (); x++) 
   {
      stringstream ss;
      pair:: iterator, bool> p = handled.insert (dist [x] .distance);
	  int z = 0;

      если (p.second), то  
	  {
		  int y;

     	  для (y=0; y < dist.size (); y++) 
		  {
			  если (dist && dist == dist [x] .distance [y] .distance [x] .studentName! = dist [y] .studentName)
				{
 					  ss << «,»;
					  ss << dist [y] .studentName;
					  z += 1;
				}
		  }
	 }
	если (z > 0), то
	  {
	   cout << setw (2) << dist [x] .distance << «ноги: » << dist [x] .studentName << ss.str () << endl;
	   z = 0;
	  }
   }
}
class=

Ответ : Помогите мне понять почему одно Кодий более лучшее чем другое .....

Для iterators… Он может посмотреть так на the first time, но iterators будут видом естественного.  Когда вы разрешаете проблему, вы клоните думать в термины «обрабатываете все элементы от…», или математически «для всех элементов в…».  Единственная обычная дорога сделать должна использовать петлю.  Петля промежутка времени в языках C-семьи слишком вообще; вы имеете делаете некоторые шаги на ваши.  Для петли в языках C-семьи малое синтактное улучшение промежутка времени.  В других языках программирования, для петли находится подсчитанная петля.  Но это также намеревается что вы должны преобразовать индекс к индексированному элементу.  Из-за того, вы часто клоните положить элементы в некоторую индексированную структуру -- к блоку или к вектору.

Если вы думаете больше о ем, то вашей реально потребностью будет вид обобщенной петли той петли через все элементы контейнера без обязательно подготовлять некоторый численный индекс.  Если вы воплощаете процесс, то работник говорит до другое одно «дает мне следующее одно», и не «дайте мне 3254th одно».  Это точно iterators хороши для.  Iterator как-то тип-прыгает к контейнеру.  После этого вы можете быть заинтересованн в внутренне деталях (индексировано ли оно внутрь, или будет ли соединенной структурой).  Иначе говоря, iterators приносят больше абстракции.

Несчастливо, iterators нове чем сердечником C++ и поэтому там будет никакими обобщенными петлей и синтаксисом для того чтобы сделать все это явно синтактно.  Как только вы получаете используемыми улучшать sytax обобщенной петли (в других языках, как в спрятанный питон где iterators работают почти волшебно,), вы реально пропускаете тот синтаксис в C++.  Новый стандарт C++ идет улучшить его бит.
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us