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

6-я глава книги "Фундаментальные алгоритмы C++" Роберта Седжвика - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переделать программу из C# в C++ http://www.cyberforum.ru/cpp-beginners/thread590982.html
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace слияние {
C++ задача про багаж с другими условиями! Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл f, содержащий информацию о багаже нескольких пассажиров, информация о багаже каждого отдельного пассажира представляет собой соответствующую пару чисел. Дать сведения о багаже, число вещей в котором не меньше, чем в любом другом багаже, а вес вещей не больше, чем в любом другом багаже с этим же числом вещей. #include... http://www.cyberforum.ru/cpp-beginners/thread590981.html
C++ компилирование с /clr
нашел пример функции чтения из файла http://msdn.microsoft.com/ru-ru/library/y52yxde8.aspx и он не компилится.. в опциях меняю на Common Language Runtime Support (/clr) и получаю 1>kursach1.cpp(1): warning C4652: compiler option 'CDecl(/Gd)' inconsistent with precompiled header; current command-line option will override that defined in the precompiled header 1>kursach1.cpp(1): warning...
C++ Указатели на функции c интегралом
Составить функцию, которая по формуле I\approx h\left(\frac{f(a)}{2}+f(a+h)+f(a+2h)+...+f(a+(n-1)h)+\frac{f(b)}{2} \right), где n фиксировано h=\frac{b-a}{n} вычисляет значение определённого интеграла I=\int_{a}^{b}f(x)dx от произвольной функции одной переменной. С помощью составленной функции вычислить значение интеграла \int_{0.5}^{3.5}\sqrt{2{x}^{2}+3}dx для n=3, 6, 9. Для вычисления...
C++ Как в консоли поменять ширину экрана программно? http://www.cyberforum.ru/cpp-beginners/thread590957.html
как программно задать ширину консоли
C++ Исчисление суммы, количества элементов массива, удовлетворяющих заданным условиям В одномерном массиве содержатся только два одинаковых элемента. Найдите их. подробнее

Показать сообщение отдельно
tihonya
11 / 7 / 1
Регистрация: 30.05.2012
Сообщений: 107
01.06.2012, 14:07  [ТС]     6-я глава книги "Фундаментальные алгоритмы C++" Роберта Седжвика
Цитата Сообщение от antoha398 Посмотреть сообщение
tihonya, попробуй в конце заголовка подключить файл исходника с реализацией, например:


А вообще надо почитать про модели компиляции шаблона, и узнать какая из них реализована в твоем компиляторе.
Спасибо , вот частично получилось, не получилось разделить Item.h, получается что-то с областью видимости struct -ы Item типа record:

C++
1
2
3
4
5
6
7
8
9
10
11
12
//MainDriver.cpp
#include <stdlib.h>
#include "Item.h"
#include "exch.h"
#include "Array.h"
void main(int argc, char *argv[])
{ int N = atoi(argv[1]), sw = atoi (argv[2]);
    Item *a = new Item[N];
    if (sw) rand(a, N); else scan(a,N);
    sort(a, 0, N-1);
    show(a, 0, N-1);
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//Array.h
#ifndef ARRAY_H
#define ARRAY_H
template <class Item>
void rand(Item a[], int N);
template <class Item>
void scan(Item a[], int &N);
template <class Item>
void show(Item a[], int l, int r);
template <class Item>
void sort (Item a[], int l, int r);
#include "OrgfunckArray.cpp"
#endif
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
//OrgfunckArray.cpp
#include <iostream>
#include<time.h>
using namespace std;
template <class Item>
void rand(Item a[], int N)
{srand(time(NULL));
 for (int i=0; i<N; i++) rand(a[i]);}
template <class Item>
 void scan(Item a[], int &N)
 { int i;
     for ( i=0; i <N; i++)
    if (!scan(a[i])) break;
 N =i; }
 template <class Item>
 void show (Item a[],int l, int r)
 {for (int i=l; i<=r; i++)
 show(a[i]);
 cout << endl;
 }
 template <class Item>
 void sort(Item a[], int l, int r){
     for (int i=l; i<r; i++){
         int f=0;
         for(int j=r; j>i; j--)
             f+=compexch(a[j-1], a[j]);
         for(int j=i+2;j<=r;j++)
             f+=compexch(a[j-1], a[j]);
         if (f==0)break;
     }
 }
C++
1
2
3
4
5
6
7
8
9
//exch.h
#ifndef EXCH_H
#define EXCH_H
template <class Item>
void exch (Item &A, Item &B);
template <class Item>
 int compexch (Item &A,Item &B);
#include "exchange.cpp"
#endif
C++
1
2
3
4
5
6
7
//exchange.cpp
template <class Item>
void exch (Item &A, Item &B)
{Item t = A; A= B; B=t;}
template <class Item>
 int compexch (Item &A,Item &B)
 { if (B < A) {exch(A, B); return 1;}else return 0; }
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
//Item.h
//#ifndef ITEM_H
//#define ITEM_H
 struct record { int key; float info;};
 typedef record Item;
 //----------------------------------
int operator <(const Item&, const Item&);
int scan(Item&);
void rand (Item&);
void show (const Item&);
 //----------------------------------
#include<iostream>
using namespace std;
//#include<stdlib.h>
int operator<(const Item& A, const Item& B)
{return A.key< B.key;}
int scan (Item& x)
{return (cin>>x.key>>x.info) !=0;}
void rand(Item& x)
{   x.key = (rand()%100);
x.info=1.0 *rand()/100;}
void show (const Item &x)
{cout <<x.key<<" "<<x.info<<endl; }
//#include "Itemcpp.cpp"
//#endif
Есть какие-то предложения как разделить Item.h , на заголовок и исполняемую час, также я не понял как сделать видимой структуру в срр файле Itemcpp.cpp если она объявляется в Item.h.
 
Текущее время: 13:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru