Прохода по коллекции STL, используя для каждого
Ключевое слово for each можно использовать для итерации по коллекции стандартной библиотеки C++ (STL).
Все платформы
Заметки
Коллекция также контейнером STL.Дополнительные сведения см. в разделе Контейнеров STL.
Примеры
Пример
В следующем примере кода используется for each для прохода по <map>.
// for_each_stl.cpp
// compile with: /EHsc
#include <map>
#include <iostream>
#include <string>
using namespace std;
int main() {
int retval = 0;
map<string, int> months;
months["january"] = 31;
months["february"] = 28;
months["march"] = 31;
months["april"] = 30;
months["may"] = 31;
months["june"] = 30;
months["july"] = 31;
months["august"] = 31;
months["september"] = 30;
months["october"] = 31;
months["november"] = 30;
months["december"] = 31;
map<string, int> months_30;
for each( pair<string, int> c in months )
if ( c.second == 30 )
months_30[c.first] = c.second;
for each( pair<string, int> c in months_30 )
retval++;
cout << "Months with 30 days = " << retval << endl;
}
Output
Пример
В следующем примере кода используется ссылка const (const&) для переменной итерации с контейнеров STL.Можно использовать ссылку (&) в качестве переменной итерации в любой коллекции типов, могут быть объявлены как T&.
// for_each_stl_2.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
using namespace std;
int main() {
int retval = 0;
vector<int> col(3);
col[0] = 10;
col[1] = 20;
col[2] = 30;
for each( const int& c in col )
retval += c;
cout << "retval: " << retval << endl;
}
Output
Среда выполнения Windows
Заметки
Платформа-специфического отсутствуют примечания о данной функции.
Требования
Параметр компилятора: /ZW
Среда CLR
Заметки
Платформа-специфического отсутствуют примечания о данной функции.
Требования
Параметр компилятора: /clr