Форум программистов, компьютерный форум CyberForum.ru

Написать функцию is_equal() - поэлементное сравнение двух контейнера - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Покритикуйте код http://www.cyberforum.ru/cpp-beginners/thread359638.html
Есть класс Студенты (реализован через односвязный список), хотел бы услышать критику по поводу его улучшения, если кому не лень разбираться в столь поздний час :) Сам код естественно полностью рабочий и предупреждений тоже компилятор не выдаёт (если не считать в main в условии while, но там всё ок) так что хотелось бы услышать Ваши замечания если что можно сделать лучше. Students.h #ifndef...
C++ правильно записать выражения арифметические суть задания по фортрану и си записать выражения и посчитать их..я записала но результаты выходят разные.. помогите пожалуйста записать правильно задание моя запись на фортран Код: http://www.cyberforum.ru/cpp-beginners/thread359628.html
исправить функцию нахождения гласных букв в массиве C++
Помогите,пожалуйста, исправить функцию, которая суммирует вероятности нахождения букв в строке(строка массив типа char,слова разделены пробелами). Если хотя бы в одном слове нет гласных букв,то вероятность строки считаем 0. Если во всех словах есть гласные буквы,то вероятность равна сумме вероятностей всех букв в строке. вроде просто сделать, но как только не пробовал - не получается. исправить...
C++ Найти все простые числа на отрезке [a,b].
Изучаем C++ месяц. Сейчас сидим на циклах. Условие задачи, собственно, и есть название темы. К сожалению, справиться с ней у меня не получается. Нашел только в гугле программу которая выводит простые числа в интервале от 1 до 100, но там присутствуют операторы, которых мы еще не изучали. Вообщем, буду очень признателен, если кто-нибудь поможет с решением задачи.
C++ ln - ряд Тейлора http://www.cyberforum.ru/cpp-beginners/thread359587.html
double ln(double x, double eps) { double T,S; int K; T=x; K=1; S=T; do{ K=K+1; T=-T*x/K; S=S+T;
C++ printf и scanf против cin и cout Друзья мои,стал учить плюсы и столкнулся с кучей противоречий. То что в С нет cin/cout я знаю. Но вот в С++ возможно использование printf/scanf. Объясните мне разницу этих операторов. Из того,что я находил,говорилось,что cin/cout - сам понимает что и как принимать/выводить и что-то о скорости вывода,но ничего дельного. Объясните пожалуйста на более достойном уровне разницу. Спасибо) подробнее

Показать сообщение отдельно
xAtom
913 / 738 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
03.10.2011, 01:30     Написать функцию is_equal() - поэлементное сравнение двух контейнера
Цитата Сообщение от DD111 Посмотреть сообщение
ункция is_equal() сравнивает поэлементно два контейнера. В случае разного размера
контейнеров “хвост” более длинного в расчет не принимается.
Ну если как я понял типа такого.
C++
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
#include <vector>
#include <iostream>
using namespace std;
 
template<typename T>
bool is_equal(const T* afirst, const T* alast, const T* bfirst, const T* blast) {
        do {
               if( *afirst != *bfirst )
                     return false;
        } while(++afirst != alast && ++bfirst != blast);
        return true;
}
 
int  main(void) {
   int arr1[5] = { 12, 2, 3, 1, 4 };
   int arr2[7] = { 12, 2, 3, 1, 4, 3, 2 };
   vector<int> v1(arr1, arr1 + 5);
   vector<int> v2(arr2, arr2 + 7);
 
   // сравнение двух векторов
   if(is_equal(v1.begin(), v1.end(), v2.begin(), v2.end())) 
          cout << "CMP VECTORS" << endl;
   else
          cout << "NOT VECTORS !!!" << endl;
 
    arr1[1]++;
    // сравнение двух массивов
    if(is_equal(arr1, arr1 + 5, arr2, arr2 + 7))
         cout << "CMP ARRAYS" << endl;
    else
         cout << "NOT ARRAY !!!" << endl;
 
   arr1[1]--;
   // сравнение вектора с массивом
   if(is_equal(v1.begin(), v1.end(), arr1, arr1 + 5))
         cout << "CMP VECTOR == ARRAY" << endl;
   else
         cout << "NOT !!!" << endl;
    
   // ну а если размеры векторов одинаковые зачем велосипед создавать
   if(v1 == v2)
        cout << "YES CMP v1 == v2" << endl;
   if(v1 != v2)
        cout << "NOT CMP v1 != v2" << endl;
 
   v1.clear();
   v2.clear();
   cin.get();
   return 0;
}
 
Текущее время: 11:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru