Это конечно цикл for (auto x : v)
for_each
- это не цикл
Это конечно цикл for (auto x : v)
for_each
- это не цикл
Внимание!
По согласованию с дирекцией начало экзамена 11 и 12 января переносится на 9.00
Станислав Станиславович, объясните, пожалуйста, зачем алгоритмам (не модифицирующим последовательность) find_first_of
и search
требуется ForwardIterator
, разве не достаточно InputIterator
?
Отсюда:
ForwardIterator Может быть скопирован и использован для повторного обхода
А тут как раз копирование:
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator1 search ( ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2)
{
if (first2==last2) return first1; // specified in C++11
while (first1!=last1)
{
ForwardIterator1 it1 = first1;
ForwardIterator2 it2 = first2;
while (*it1==*it2) { // or: while (pred(*it1,*it2)) for version 2
if (it2==last2) return first1;
if (it1==last1) return last1;
++it1; ++it2;
}
++first1;
}
return last1;
}
Станислав Станиславович, скажите пожалуйста еще раз, что(как) нужно ответить на вопрос 46(Оптимизация RVO[Return value optimization]) просто у меня в тетради это плохо расписано
Вот ссылка на конспект предыдущего года:
https://drive.google.com/file/d/11NG8Xq-V5HgEU2ABiCWg3sRxzjbpqaRS/view?usp=sharing
А лучше посмотреть в Интернете - если в вашем конспекте этого нет.
Станислав Станиславович, уточните, пожалуйста, продолжительность письменной части составит 1 час?
И можно ли брать программу экзамена, разукрашенную текстовыделителем или она должна быть обязательно чистой?
Да
Да, если кроме текстовыделителя там нет никаких пометок
Вот, пример в ночь перед экзаменом:
Программа на C++ компилируется только если константа в её тексте - простое число:
template<bool V> struct answer
{
answer(int) {}
bool operator()()
{
return V;
}
};
template<bool no, bool yes, int f, int p> struct IsPrimeHelper
: IsPrimeHelper<p % f == 0, f * f >= p, f + 2, p> {};
template<bool yes, int f, int p> struct IsPrimeHelper<true, yes, f, p>
{
using type = answer<false>;
};
template<int f, int p> struct IsPrimeHelper<false, true, f, p>
{
using type = answer<true>;
};
template<int I> using IsPrime = typename IsPrimeHelper<!(I&1), false, 3, I>::type;
template<int I>
struct X { static const int i = I; int a[i]; };
template<typename A> struct foo;
template<>struct foo<answer<true>>
{
template<int I> using typen = X<I>;
};
template<> struct foo<answer<false>>
{
static const int typen = 0;
};
int main()
{
auto b = foo<IsPrime<234799>>::typen<1>(); // Syntax error if not prime
return 0;
}
Вот так вот я недавно выбил ошибок при компиляции одной библиотеки, мне кажется достаточно символичный скрин в завершении семестра