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

Iseq - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не записываются числа http://www.cyberforum.ru/cpp-beginners/thread922786.html
Написал программу, которая с помощью цикла записывает в файл числа от нуля до 423. Но почему то компилятор выдает ошибку если я записываю цифры. Если же это слова, то все норм: #include "StdAfx.h" #include <iostream> #include <cstdio> #include<iomanip> using namespace std; int main () {
C++ Проблемка с exit Пример из книги. #include <iostream> #include <iomanip> // для setw() #include <process.h> // для exit() using namespace std; int main() { unsigned int n, j; cin >> n; http://www.cyberforum.ru/cpp-beginners/thread922773.html
Запись в файл C++
Не понимаю в чем дело. Написал программу которая записывает значения в файл. На деле она записывает данные в файл, если он находиться в папке с программой. Если же я указываю файл в другой папке, ничего не происходит. В чем дело? #include "stdafx.h" #include<iomanip> #include<iostream> #include<vector> #include<algorithm> #include<fstream> using namespace std;
C++ Как задать условия для метода простой итерации(СЛАУ)
Ребят помогите)) Не могу догадаться как написать условия для условия метода простой итерации=) у меня есть прога с частным случаем когда A элементы не могут равняться нулю, но препод сказал что нужен общий, т.е. когда пользователь вбивает элементы матрицы и на A ставит 0, то нужно выполнить преобразования которые показаны на картинке...не пойму как их реализовать в программном...
C++ сортировка list http://www.cyberforum.ru/cpp-beginners/thread922757.html
Здорова! Почему то список не сортируется с помощью аргумента sort, вот код: #include <iostream> using std::cout; using std::endl; #include <list> using std::list; #include <algorithm> using std::sort; #include <functional>
C++ Расширяемый массив Подскажите как задать динамически расширяемый массив, не используя STL. На теории, если массив переполнен, создаём массив в 2 раза больше и копируем туда исходный. Но сталкиваюсь с такой проблемой, как сделать массив с тем же именем. подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.07.2013, 00:49  [ТС]     Iseq
Цитата Сообщение от ForEveR Посмотреть сообщение
Там точно нет запятой после встроенных массивов? Ибо встроенных массивов istream звучит слишком бредово
Да есть запятая. Да по коду вроде как видно что find нужно перезагрузить и для T* T*, где T это просто тип, наверно это имеется введу встроенный массив. Я почти сделал, я много перегружать не буду 3 алгоритма перегружу find find_if и mismatch, токо полностью перегружу. Это уже похоже по два шаблона нада один для функций и еще один для передаваемого типа (функциональный объект). От кусок кода никак в mismatch функцию свою не могу передать. Шаблоны создовать это головнят полный.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
using std::cout;
using std::endl;
#include <list>
using std::list;
#include <algorithm>
using std::find;
using std::find_if;
using std::mismatch;
#include <string>
using std::string;
#include <utility>
using std::pair;
#include <functional>
using std::equal_to;
using std::bind2nd;
 
//Iseq для одной пары
template<class In> struct Iseq : public pair<In,In>
{
    In ii3;
    Iseq(In i1, In i2) : pair<In,In>(i1,i2),ii3(i2){}
    Iseq(In i1, In i2, In i3) : pair<In,In>(i1,i2),ii3(i3){}
};
//iseq для одной пары
template<class C> Iseq<typename C::iterator> iseq(C& c)//для всего контейнера
{
    return Iseq<typename C::iterator>(c.begin(),c.end());
}
//перегрузка для двух пар итераторов (функция)
template<class C> Iseq<typename C::iterator> iseq(C& c,C& c1)//для всего контейнера
{
    return Iseq<typename C::iterator>(c.begin(),c.end(),c1.begin());
}
 
//перегрузка find
template<class In,class T> In find(Iseq<In> r,const T& v)//расширение
{
    return find(r.first,r.second,v);
}
//перегрузка find_if
template<class In, class T> In find_if(Iseq<In> r,bool (*ptr)(T))
{
    return find_if(r.first,r.second,ptr);
}
//перегрузка mismatch
template<class In,class T> pair<In,In> mismatch(Iseq<In> r,bool(*ptr)(T))//,bool(*ptr)(T,T))
{
    //cout <<"mu tyt"<<endl;exit(1);
    //return pair<In,In>();
    return mismatch(r.first,r.second,r.ii3,ptr);//,ptr);
}
 
 
void f(list<string>& ls)
{
    list<string>::iterator p=find(ls.begin(),ls.end(),"standard");
    list<string>::iterator q=find(iseq(ls),"two");
    if(q!=ls.end())
        cout <<"*q= "<<*q<<endl;
    else
        cout <<"not find"<<endl;
    //...
}
 
//собственный предикат
bool pr(string a){return ("two"==a);}
bool pr1(int a,int b){return (a==b);}
 
int main()
{
    list<string> l;
    l.push_back("one");
    l.push_back("two");
    l.push_back("three");
    l.push_back("four");
 
    f(l);
 
    list<string>::iterator it;
    //iseq(l) l type list<string>
    //find
    it=find(iseq(l),"three");
    if(it!=l.end())
        cout <<"*it= "<<*it<<endl;//three
 
    //find_if
    it=find_if(l.begin(),l.end(),pr);
    it=find_if(iseq(l),pr);
 
    if(it!=l.end())
        cout <<"*it= "<<*it<<endl;//two
 
    //mismatch
    int mass[]={1,2,3,4,5};
    list<int> l1(mass,mass+5);
    int mass1[]={1,2,8,4,5};
    list<int> l2(mass1,mass1+5);
    pair<list<int>::iterator,list<int>::iterator> rez;
    //rez=mismatch(mass,mass+5,mass1,pr1);
    rez=mismatch(iseq(l1,l2),pr1);//,pr1);
    cout <<"*rez.first= "<<*rez.first<<" *rez.second= "<<*rez.second<<endl;
 
    return 0;
}
Добавлено через 59 секунд
Кто знает как pr1 добавить в mistmatch.

Добавлено через 5 минут
Да запусти шаблон, там параметр второй в функции забыл, давайте господа для полноты картины разберемся, что такое istream, и как например для них что то перегрузить или что тут в задачке имелось в веду, со всем вроде как то так смутно понятно, токо это осталось.

Добавлено через 1 минуту
Мне еще эта фигня кумарит когда вызывая шаблонную функцию явно не нужно задавать аргументы шаблона.

Добавлено через 31 минуту
Блин забыло формулу по которой определяется конец массива из его названия??
 
Текущее время: 09:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru