MyTetra Share
Делитесь знаниями!
Count и Sort
Время создания: 16.07.2017 19:44
Раздел: Computer - Programming - C++

Пример работы со строкой. Мы перебираем все элементы строки и, например, выводим их с символом запятой между ними:


#include <iostream>

#include <string>

using namespace std;


int main()

{

string s = "abcdefg";

for(char c : s)

{

cout << c << ",";

}


return 0;

}


В случае с вектором принцип тот же, но тип переменной с в цикле for необходимо поменять на int, т.к. вектор состоит из целых чисел:


#include <iostream>

#include <string>

#include <vector>

using namespace std;


int main()

{

vector<int> nums = {1, 5, 2, 3, 5};

for(int c : nums)

{

cout << c << ",";

}


return 0;

}


Чтобы избежать лишнего геморроя с определением типов, удобно прописывать auto:


vector<string> nums = {"1a", "5+", "2", "32", "5"};

for(auto c : nums)

{

cout << c << ",";

}


Такой подход удобен, если цикл for будет вызываться через функцию. Это сделает ее универсальной для любых типов данных.

Так же можно подсчетать кол-во цифр "5" в нашем векторе:


vector<int> nums = {1, 5, 2, 3, 5};

int quantity = 0;

for(auto i : nums)

{

if(i == 5)

{

quantity += 1;

}

}

cout << "There are/is " << quantity << " five(s)";


Но такие простейшие операции выполнять 5 строчками неудобно. Поэтому можно подключить библиотеку <algorithm> и выполнить подсчет элементов с помощью функции count следующим образом:


#include <algorithm>

...

vector<int> numbers = {1, 5, 2, 3, 5};

int quantity = count(begin(numbers), end(numbers), 5);

cout << "There are/is " << quantity << " five(s)";


Аналогично работает функция sort:


vector<int> numbers = {1, 5, 2, 3, 5};

sort(begin(numbers), end(numbers));

for(auto i : numbers)

cout << i << " ";



 
MyTetra Share v.0.53
Яндекс индекс цитирования