И это вприницпи работает. Как мне сделать так, что бы у каждого предмета можно было выставлять определённый коофицент выпадения? Или хотя бы подскажите куда копать, в каком направлении.
#include <iostream>
#include <map>
#include <string>
using namespace std;
map<char, int> freq(const string& src, const string& pat)
{
map<char, int> freq_dict;
for(char c : pat)
{
if(freq_dict.count(c) == 0)
{
freq_dict[c] = 0;
}
}
for(char c : src)
{
if(freq_dict.find(c) != freq_dict.end())
{
freq_dict[c]++;
}
}
return freq_dict;
}
int main()
{
string words, pat;
cout << "Введите предложение => "; getline(cin, words);
cout << "Введите набор символов => "; getline(cin, pat);
for(const auto& p : freq(words, pat))
{
cout << p.first << " : " << p.second << "\n";
}
}
#include <iostream>
#include <iterator>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
auto input = [](const string& msg)
{
cout << msg;
size_t i = 0;
cin >> i;
return [i](istream& is){
vector<int> v;
copy_n(istream_iterator<int>{is}, i, back_inserter(v));
return v;
};
};
int main()
{
auto v = input("Enter number of numbers, I'm lazy: ");
auto values = v(cin);
}
#include <iostream>
#include <iterator>
#include <algorithm>
#include <cctype>
using namespace std;
int main()
{
const size_t sz = 100;
int a[sz]{0};
cout << "Enter numbers: " << endl;
size_t cnt = 0;
while(cin)
{
char c = static_cast<char>(cin.get());
if(isdigit(c) || c == '-' || c == '+')
{
if(cnt < sz - 1)
{
int i = 0;
cin.putback(c);
cin >> i;
a[cnt++] = i;
}
else
{
cout << "Out of range: " << sz << endl;
break;
}
}
else if(c == ' ')
{
continue;
}
else
{
cout << "End or not number" << endl;
break;
}
}
copy_n(a, cnt, ostream_iterator<int>(cout, " "));
}
Как изменить код чтобы он работал?
//...
a = max({b, c, d});
//...
template< class T >
T max( std::initializer_list<T> ilist );
// ...
ostringstream os;
// ...
res = PQexec (conn, os.str().c_str());
// ...
auto t1 = std::chrono::high_resolution_clock::now();
f();
auto t2 = std::chrono::high_resolution_clock::now();
Прошу подсказать библиотеки и пример обработки строк
Ошибка в том, что считает вместе с минимальным элементом
int i = std::min(imax, imin) + 1
вещественных
#include <iostream>
#include <algorithm>
#include <vector>
#include <numeric>
#include <iterator>
using namespace std;
auto mulM = [](auto const& ctx)
{
auto [lo, hi] = minmax_element(begin(ctx), end(ctx));
return (distance(min(lo, hi), max(lo, hi)) < 2)
? 0
: accumulate(min(lo, hi) + 1, max(lo, hi), 1, multiplies<double>());
};
int main()
{
vector<double> v = {2, 5, 42, 7, 81, 21, 3, 2, 7};
auto r = mulM(v);
cout << r;
}
#include<iostream>
int main()
{
std::cout << "пиши как есть" << std::endl;
}
$ locale
мне нужно постоянно считывать числа из ввода пока не будет две подряд одинаковых
vector<int> get_sequense(istream& is)
{
int first = 0;
int second = 0;
vector<int> values;
is >> first;
while(is >> second && first != second)
{
values.push_back(first);
first = second;
}
return values;
}
// ...
for(int v : get_sequense(cin)) cout << v << " ";