Тролль Опубликовано 21 декабря, 2012 Жалоба Поделиться Опубликовано 21 декабря, 2012 vampir4eg Практически любая сложная сортировка поддается распараллеливанию по потокам. Просто посмотри в Яндексе "многопоточная сортировка". Например, тут. Там, правда, сортируются числа, но числа или строки сортировать - разницы нет. Кроме того, там функцию получения случайных чисел random надо, скорее всего, заменить на rand из VS. Ссылка на комментарий Поделиться на другие сайты Поделиться
Serty Опубликовано 23 декабря, 2012 Жалоба Поделиться Опубликовано 23 декабря, 2012 Здравствуйте! Нужно запрограммировать алгоритмы умножения матриц (3 метода), прилагаю файл в word, там все расписано. Язык программирования желательно C#, но можно и С++. Благодарить буду вечно! 3 метода.doc 3 метода.doc Ссылка на комментарий Поделиться на другие сайты Поделиться
Кронус Опубликовано 23 декабря, 2012 Жалоба Поделиться Опубликовано 23 декабря, 2012 Всем привет! Помогите, пожалуйста, решить (паскаль abc): Дано натуральное число n. Получить действительную матрицу [aij] i,j=1, ..., n, для которой Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 23 декабря, 2012 Жалоба Поделиться Опубликовано 23 декабря, 2012 Кронус var n,i,j:integer; p:real; a:array[1..20,1..20]of real; beginwrite('n ? '); readln(n); for i:=1 to n do for j:=1 to n do a[i,j]:=1/(i+j); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:8:4); writeln end;writeln;for i:=1 to n do for j:=i+1 to n do a[i,j]:=sin(i+j);for i:=1 to n do for j:=1 to i-1 do begin p:=(i+j)/(2*i+3*j); a[i,j]:=arctan(p/sqrt(1-p*p)) end;for i:=1 to n do a[i,i]:=1;for i:=1 to n do begin for j:=1 to n do write(a[i,j]:8:4); writeln end;readlnend. Ссылка на комментарий Поделиться на другие сайты Поделиться
Кронус Опубликовано 24 декабря, 2012 Жалоба Поделиться Опубликовано 24 декабря, 2012 Тролль Благодарю за помощь ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Wind327 Опубликовано 25 декабря, 2012 Жалоба Поделиться Опубликовано 25 декабря, 2012 (изменено) Доброго вечера всем! Тролль, нужна Ваша помощь! Составить процедуру подсчета числа узлов заданного бинарного дерева. (на си или с++) Изменено 25 декабря, 2012 пользователем Yezhishe Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 25 декабря, 2012 Жалоба Поделиться Опубликовано 25 декабря, 2012 (изменено) Wind327 Совсем не обязательно Тролль, это форум... По теме - слегка упростим программу из этой темы для NickLid’а: #include <iostream>using namespace std;struct Tree{Tree *L,*R;};int ct(Tree *w,int l){int d=0; if(w->L)d+=ct(w->L,l+1); if(w->R)d+=ct(w->R,l+1); return ++d;}void al(Tree **w){Tree* k; *w=new Tree; k=*w; k->L=0;k->R=0;} // добавление узла в деревоint main(){Tree *T=0; al(&T); al(&T->L); al(&T->R); al(&T->L->L); al(&T->L->L->R); al(&T->L->L->L); al(&T->R->L);// создали тестовое дерево из семи узловcout<<ct(T,0)<<endl; cin.get();} Изменено 25 декабря, 2012 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Wind327 Опубликовано 25 декабря, 2012 Жалоба Поделиться Опубликовано 25 декабря, 2012 Понял! Спасибо за помощь! Ссылка на комментарий Поделиться на другие сайты Поделиться
karok4 Опубликовано 10 января, 2013 Жалоба Поделиться Опубликовано 10 января, 2013 Уважаемый Тролль! очень нужна ваша помощь! написать данную программку на С++ (через потоки) Описать структуру с именем NOTE, содержащую следующие поля: - фамилия, имя; - номер телефона; - дата рождения; Написать программу выполняющую следующие действия: - ввод с клавиатуры данных в массив, состоязий из восьми элементов типа NOTE; записи должны быть упорядочены по трем перывм цифрам номера телефона ; - вывод на экран информации о человеке, чья фамилия введена с клавиатуры; - если такого нет , вывести соответсвующее сообщение. з.ы. в отсортированном списке должны быть все люди. а потом отдельно, удовлетворяющие параметрам поиска. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 10 января, 2013 Жалоба Поделиться Опубликовано 10 января, 2013 karok4 #include <iostream>#include <string.h>using namespace std;int main(){const int n=8; char Name[30]; bool b;struct NOTE{char NAME[30],TELE[15]; unsigned BDAY[3];}BNOTE[n],T;for(int i=0;i<n;i++){ cout<<endl<<"Full name? "; cin.getline(BNOTE[i].NAME,29); cout<<"Phone number? "; cin>>BNOTE[i].TELE; cout<<"Birthday (DD MM YYYY)? "; for(int j=0;j<3;j++)cin>>BNOTE[i].BDAY[j]; cin.get();}for(int i=0;i<n;i++)for(int j=0;j<n-i-1;j++) if(strncmp(BNOTE[j].TELE,BNOTE[j+1].TELE,3)>0) {T=BNOTE[j];BNOTE[j]=BNOTE[j+1];BNOTE[j+1]=T;}cout<<endl<<"Full list: "<<endl<<endl;for(int i=0;i<n;i++) cout<<"Full name: "<<BNOTE[i].NAME<<endl<<"Phone number: "<< BNOTE[i].TELE<<endl<<"Birthday:"<<(BNOTE[i].BDAY[0]<=9?" 0":" ")<< BNOTE[i].BDAY[0]<<(BNOTE[i].BDAY[1]<=9?".0":".")<<BNOTE[i].BDAY[1]<< '.'<<BNOTE[i].BDAY[2]<<endl<<endl;cout<<endl<<"Surname for the search? "; cin>>Name; b=true; cout<<endl;for(int i=0;i<n;i++) if(!strncmp(Name,BNOTE[i].NAME,strlen(Name))&&BNOTE[i].NAME[strlen(Name)]==' ') cout<<"Full name: "<<BNOTE[i].NAME<<endl<<"Phone number: "<< BNOTE[i].TELE<<endl<<"Birthday:"<<(BNOTE[i].BDAY[0]<=9?" 0":" ")<< BNOTE[i].BDAY[0]<<(BNOTE[i].BDAY[1]<=9?".0":".")<<BNOTE[i].BDAY[1]<< '.'<<BNOTE[i].BDAY[2]<<endl<<endl, b=false;if(b)cout<<endl<<"No such person!"<<endl<<endl;cin.get(); cin.get();} Для проверки целесообразно, чтобы не вводить данные восьми людей, заменить n=8 на n=2 или n=3. P.S. Цитирую мой предыдущий пост тут: "Совсем не обязательно Тролль, это форум..." Ссылка на комментарий Поделиться на другие сайты Поделиться
karok4 Опубликовано 10 января, 2013 Жалоба Поделиться Опубликовано 10 января, 2013 karok4 #include <iostream>#include <string.h>using namespace std;int main(){const int n=8; char Name[30]; bool b;struct NOTE{char NAME[30],TELE[15]; unsigned BDAY[3];}BNOTE[n],T;for(int i=0;i<n;i++){ cout<<endl<<"Full name? "; cin.getline(BNOTE[i].NAME,29); cout<<"Phone number? "; cin>>BNOTE[i].TELE; cout<<"Birthday (DD MM YYYY)? "; for(int j=0;j<3;j++)cin>>BNOTE[i].BDAY[j]; cin.get();}for(int i=0;i<n;i++)for(int j=0;j<n-i-1;j++) if(strncmp(BNOTE[j].TELE,BNOTE[j+1].TELE,3)>0) {T=BNOTE[j];BNOTE[j]=BNOTE[j+1];BNOTE[j+1]=T;}cout<<endl<<"Full list: "<<endl<<endl;for(int i=0;i<n;i++) cout<<"Full name: "<<BNOTE[i].NAME<<endl<<"Phone number: "<< BNOTE[i].TELE<<endl<<"Birthday:"<<(BNOTE[i].BDAY[0]<=9?" 0":" ")<< BNOTE[i].BDAY[0]<<(BNOTE[i].BDAY[1]<=9?".0":".")<<BNOTE[i].BDAY[1]<< '.'<<BNOTE[i].BDAY[2]<<endl<<endl;cout<<endl<<"Surname for the search? "; cin>>Name; b=true; cout<<endl;for(int i=0;i<n;i++) if(!strncmp(Name,BNOTE[i].NAME,strlen(Name))&&BNOTE[i].NAME[strlen(Name)]==' ') cout<<"Full name: "<<BNOTE[i].NAME<<endl<<"Phone number: "<< BNOTE[i].TELE<<endl<<"Birthday:"<<(BNOTE[i].BDAY[0]<=9?" 0":" ")<< BNOTE[i].BDAY[0]<<(BNOTE[i].BDAY[1]<=9?".0":".")<<BNOTE[i].BDAY[1]<< '.'<<BNOTE[i].BDAY[2]<<endl<<endl, b=false;if(b)cout<<endl<<"No such person!"<<endl<<endl;cin.get(); cin.get();} Для проверки целесообразно, чтобы не вводить данные восьми людей, заменить n=8 на n=2 или n=3. P.S. Цитирую мой предыдущий пост тут: "Совсем не обязательно Тролль, это форум..." Спасибо большое за помощь, но программа почему то не выполняет поиск по фамилии , я например, ввожу фамилию человека, которого ввел ранее, а программа выдает что не найден... Ссылка на комментарий Поделиться на другие сайты Поделиться
karok4 Опубликовано 10 января, 2013 Жалоба Поделиться Опубликовано 10 января, 2013 приношу свои извенения, все работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
CbIPOK Опубликовано 18 января, 2013 Жалоба Поделиться Опубликовано 18 января, 2013 Доброго времени суток. Нужна программа на С++ Даны действительные числа a1, ..., a20. Преобразовать эту последовательность по правилу: большее из двух чисел ai и a10+i (i=1,...,10) принять в качестве нового значения ai, а меньшее – в качестве нового значения a10+i. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 18 января, 2013 Жалоба Поделиться Опубликовано 18 января, 2013 (изменено) СЫРОК #include<iostream>using namespace std;int main(){const int n=20, k=n/2; float a[n],b;cout<<"Enter "<<n<<" numbers: "<<endl; for(int i=0;i<n;i++)cin>>a[i];for(int i=0;i<k;i++)if(a[i]<a[i+k]){b=a[i]; a[i]=a[i+k]; a[i+k]=b;}for(int i=0;i<n;i++)cout<<a[i]<<' '; cout<<endl; cin.get(); cin.get();} Для проверки, чтобы не вводить двадцать значений, лучше заменить n=20 на n=6 или n=8. P.S. Немного подкорректировал для более компактного вывода. Изменено 18 января, 2013 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
CbIPOK Опубликовано 18 января, 2013 Жалоба Поделиться Опубликовано 18 января, 2013 СЫРОК #include<iostream>using namespace std;int main(){const int n=20, k=n/2; float a[n],b;cout<<"Enter "<<n<<" numbers: "<<endl; for(int i=0;i<n;i++)cin>>a[i];for(int i=0;i<k;i++)if(a[i]<a[i+k]){b=a[i]; a[i]=a[i+k]; a[i+k]=b;}for(int i=0;i<n;i++)cout<<a[i]<<' '; cout<<endl; cin.get(); cin.get();} Для проверки, чтобы не вводить двадцать значений, лучше заменить n=20 на n=6 или n=8. P.S. Немного подкорректировал для более компактного вывода. Спасибо большое. Только вот проверить не удается( Вылазиет куча ошибок c:\program files (x86)\microsoft visual studio 9.0\vc\include\ostream(940): or 'std::basic_ostream<_Elem,_Traits> &std::endl(std::basic_ostream<_Elem,_Traits> &)' 1>c:\users\cbipok\documents\visual studio 2008\projects\kontr20\kontr20\kontr20.cpp(15) : error C2065: 'cin' : undeclared identifier 1>c:\users\cbipok\documents\visual studio 2008\projects\kontr20\kontr20\kontr20.cpp(15) : error C2228: left of '.get' must have class/struct/union 1> type is ''unknown-type'' 1>c:\users\cbipok\documents\visual studio 2008\projects\kontr20\kontr20\kontr20.cpp(15) : error C2065: 'cin' : undeclared identifier 1>c:\users\cbipok\documents\visual studio 2008\projects\kontr20\kontr20\kontr20.cpp(15) : error C2228: left of '.get' must have class/struct/union 1> type is ''unknown-type'' 1>Build log was saved at "file://c:\Users\CbIPOK\Documents\Visual Studio 2008\Projects\kontr20\kontr20\Debug\BuildLog.htm" 1>kontr20 - 10 error(s), 1 warning(s) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 19 января, 2013 Жалоба Поделиться Опубликовано 19 января, 2013 СЫРОК Это у тебя что-то с настройками Visual Studio. Не подключается файл iostream, остальное - следствия. Попробуй запустить вариант на чистом C: #include<stdio.h>#define n 20int main(){int k=n/2; float a[n],b;printf("Enter %d numbers: \n",n); for(int i=0;i<n;i++)scanf("%f",&a[i]);for(int i=0;i<k;i++)if(a[i]<a[i+k]){b=a[i]; a[i]=a[i+k]; a[i+k]=b;}for(int i=0;i<n;i++)printf("%f ",a[i]); printf("\n"); getchar(); getchar();} Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 19 января, 2013 Жалоба Поделиться Опубликовано 19 января, 2013 СЫРОК По твоей просьбе из ЛС - комментарии к программе: #include<iostream> // подключение заголовочного файла для связи с cin и cout using namespace std; // подключение стандартного пространства именint main(){const int n=20, k=n/2; float a[n],b; // объявление констант, массива и вспомогательной переменной // для обмена значений элементов массива cout<<"Enter "<<n<<" numbers: "<<endl; for(int i=0;i<n;i++)cin>>a[i]; // вывод подсказки на ввод значений массива и ввод их в циклеfor(int i=0;i<k;i++)if(a[i]<a[i+k]){b=a[i]; a[i]=a[i+k]; a[i+k]=b;} // проход до середины цикла, сравнение элементов с начала массива и cо сдвигом на полмассива// и обмен их значений при необходимостиfor(int i=0;i<n;i++)cout<<a[i]<<' '; cout<<endl; cin.get(); cin.get();}// вывод в цикле значений элементов полученного массива // и ожидание нажатия Enter для закрытия окна вывода Ссылка на комментарий Поделиться на другие сайты Поделиться
karok4 Опубликовано 22 января, 2013 Жалоба Поделиться Опубликовано 22 января, 2013 (изменено) Здравствйте! помогите пожалуйста, не получается в коде сделать ввод из файла( (задание осуществить циклический сдвиг матрицы) #include <math.h>#include <iostream>#include <fstream>#include <iomanip>using namespace std;double GG ( double a[10][10], int p,int n,int m){int i, j, k ;double temp,temp2,temp3;for(i=0; i < n/2; i++){for(int z = p; z>0 ; z--) //кол-во сдвигов - к{for(j = i, temp = a[i][j]; j < n-1-i; j++){temp2 = a[i][j+1];a[i][j+1] = temp;temp=temp2;}for(k = i+1; k < m-i; k++){temp3=temp;temp=a[k][j];a[k][j]=temp3;}for( j--, k--; j >= i; j--){temp3=temp;temp=a[k][j];a[k][j]=temp3;}for(j++, k--; k >= i; k--){temp3=temp;temp=a[k][j];a[k][j]=temp3;}}}return a[10][10];}int main(){int p, n, m, i, j;double a[10][10];ifstream read("input.txt");if (!read) {cout << "Файл не найден!" << endl;system ("PAUSE");return 1;}read >> n;//выделение памятиint **a = new int *[n];for (i=0; i<n; i++)a[i] = new int [n];//считывание массиваfor (i=0; i<n; i++) {for (j=0; j<n; j++)read >> a[i][j];}cout << "Ваш массив:" << endl;for (i=0; i<n; i++) {for (j=0; j<n; j++)cout << setw(3) << a[i][j] << " ";cout << endl;return 0;} Изменено 22 января, 2013 пользователем karok4 Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 22 января, 2013 Жалоба Поделиться Опубликовано 22 января, 2013 karok4 Я вообще не понимаю, как ты смог это скомпилировать. Имя а в функции main у тебя, например, определено дважды и означает разные вещи. Что имеется в виду под "циклическим сдвигом матрицы"? Ссылка на комментарий Поделиться на другие сайты Поделиться
karok4 Опубликовано 23 января, 2013 Жалоба Поделиться Опубликовано 23 января, 2013 Помогите решить эту задачу: Осуществить циклический сдвиг элементов квадратной матрицы размерности М х N вправо на К элементов следующим образом: элементы 1-го строке сдвигаются в последний столбец сверху вниз, из него-в последнюю строку справа налево, из него - в первый столбец снизу вверх, из него в первую строку; для остальных жл-ов аналогично. #include <stdio.h>#include <iostream>#include <conio.h>using namespace std;double GG ( double a[10][10], int p,int n,int m){int i, j, k ;double temp,temp2,temp3;for(i=0; i < n/2; i++){for(int z = p; z>0 ; z--) //кол-во сдвигов - к{for(j = i, temp = a[i][j]; j < n-1-i; j++){temp2 = a[i][j+1];a[i][j+1] = temp;temp=temp2;}for(k = i+1; k < m-i; k++){temp3=temp;temp=a[k][j];a[k][j]=temp3;}for( j--, k--; j >= i; j--){temp3=temp;temp=a[k][j];a[k][j]=temp3;}for(j++, k--; k >= i; k--){temp3=temp;temp=a[k][j];a[k][j]=temp3;}}}return a[10][10];}int main(){int p, n, m, i, j;double a[10][10];{cout << "Vvedite n,m" << endl;cin >> n;cin >> m;/*n=4;m=4;*/}cout << "Vvedite elementy matricy"<< endl;for(i=0;i<n;i++)for(j=0;j<m;j++){cin >> a[i][j];}{cout<<"Vvedite k\n";cin>>p;GG(a,p,n,m);for(i=0;i<n;i++){for(j=0;j<m;j++){cout.setf(ios::fixed);cout.precision(0);cout<<a[i][j]<<" ";}cout<<endl;}getch();}return 0;} ввод из файла жолжен быть Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 23 января, 2013 Жалоба Поделиться Опубликовано 23 января, 2013 (изменено) karok4 #include<iostream>#include<fstream>#include<cmath>using namespace std;int main(){int p,z,i,j,k,t,n=0; ifstream r;r.open("input.txt");if(!r){cout<<"No file!"<<endl; cin.get(); return 1;}while(r.good()){r>>k; n++;} r.close();n=int(sqrt(n)+.01); cout<<n<<endl;int **a=new int *[n]; for(i=0;i<n;i++)a[i]=new int[n];r.open("input.txt"); for(i=0;i<n;i++)for(j=0;j<n;j++)r>>a[i][j]; r.close();cout<<"Shift? "; cin>>k; cout<<endl;for(i=0;i<n;i++){for(j=0;j<n;j++)cout.width(4),cout<<a[i][j]; cout<<endl;}for(p=0;p<k;p++)for(z=0;z<n/2;z++){ t=a[z][n-1-z]; for(j=n-1-z;j>z;j--)a[z][j]=a[z][j-1]; for(j=z;j<n-1-z;j++)a[j][z]=a[j+1][z]; for(j=z;j<n-1-z;j++)a[n-1-z][j]=a[n-1-z][j+1]; for(j=n-1-z;j>z+1;j--)a[j][n-1-z]=a[j-1][n-1-z]; a[z+1][n-1-z]=t;}cout<<endl;for(i=0;i<n;i++){for(j=0;j<n;j++)cout.width(4),cout<<a[i][j]; cout<<endl;}cin.get(); cin.get(); return 0;} Размер матрицы определяется автоматически по количеству чисел во входном файле input.txt, например, для размера 4, в нем должно быть 16 чисел, то есть файл будет таким: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (числа, конечно, могут быть произвольными, по идущим по порядку легче отследить работу). Изменено 23 января, 2013 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
karok4 Опубликовано 23 января, 2013 Жалоба Поделиться Опубликовано 23 января, 2013 karok4 #include<iostream>#include<fstream>#include<cmath>using namespace std;int main(){int p,z,i,j,k,t,n=0; ifstream r;r.open("input.txt");if(!r){cout<<"No file!"<<endl; cin.get(); return 1;}while(r.good()){r>>k; n++;} r.close();n=int(sqrt(n)+.01); cout<<n<<endl;int **a=new int *[n]; for(i=0;i<n;i++)a[i]=new int[n];r.open("input.txt"); for(i=0;i<n;i++)for(j=0;j<n;j++)r>>a[i][j]; r.close();cout<<"Shift? "; cin>>k; cout<<endl;for(i=0;i<n;i++){for(j=0;j<n;j++)cout.width(4),cout<<a[i][j]; cout<<endl;}for(p=0;p<k;p++)for(z=0;z<n/2;z++){ t=a[z][n-1-z]; for(j=n-1-z;j>z;j--)a[z][j]=a[z][j-1]; for(j=z;j<n-1-z;j++)a[j][z]=a[j+1][z]; for(j=z;j<n-1-z;j++)a[n-1-z][j]=a[n-1-z][j+1]; for(j=n-1-z;j>z+1;j--)a[j][n-1-z]=a[j-1][n-1-z]; a[z+1][n-1-z]=t;}cout<<endl;for(i=0;i<n;i++){for(j=0;j<n;j++)cout.width(4),cout<<a[i][j]; cout<<endl;}cin.get(); cin.get(); return 0;} Размер матрицы определяется автоматически по количеству чисел во входном файле input.txt, например, для размера 4, в нем должно быть 16 чисел, то есть файл будет таким: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (числа, конечно, могут быть произвольными, по идущим по порядку легче отследить работу). спасибо огромное! Ссылка на комментарий Поделиться на другие сайты Поделиться
Rika23 Опубликовано 27 февраля, 2013 Жалоба Поделиться Опубликовано 27 февраля, 2013 Здравствуйте. Помогите, пожалуйста, с программой на С++. Условие звучит так: Разработать шаблон класса для работы с двусторонней очередью (деком), выполненной в виде двусвязного списка. Для разрабатываемого шаблона обязательно определите: конструктор по умолчанию, конструктор копирования, конструктор с параметрами (массив объектов), деструктор; оператор присваивания, оператор [ ] (доступ к элементу по его номеру с начала очереди); добавление элемента в начало или конец , удаление элемента из начала или конца ; метод, выводящий содержимое очереди в указанный поток от начала к концу, метод, выводящий содержимое очереди в указанный поток от конца к началу, поиск номера элемента в очереди. Пользовательский тип – авто на ремонте в СТО (госномер, марка, дата, стоимость). Начала писать код, но что-то не получается с конструктором. Никак не пойму, в чем дело. Вот код://Deque.h #ifndef _DEQUE_H_ #define _DEQUE_H_ #include<iostream> template <class T> class Deque { private: struct Node { Node* next; Node* previous; T info; Node(T data=0){ info=data; next=NULL; previous=NULL;} }; Node *head; Node *tail; int count; public: Deque(); //Deque(const Deque& D); ~Deque(); bool isEmpty() const; //void push_front(T data); int size() { return count;} }; #endif //Deque.cpp #include"Deque.h" #include<iostream> using namespace std; template <class T> Deque <T> ::Deque(): head(0), tail(0), count(0) {} template <class T> Deque <T> :: ~Deque() { while (head!=0) { tail=head->next; delete head; head=tail; } } template <class T> bool Deque <T> ::isEmpty() const { return head==0; } //main.cpp #include<iostream> #include"Deque.h" using namespace std; int main() { Deque <int> d; return 0; } Компилятор выдает: Error 1 error LNK2019: unresolved external symbol "public: __thiscall Deque<int>::~Deque<int>(void)" (??1?$Deque@H@@QAE@XZ) referenced in function _main D:\!_Private\VS C++\UP\sln_templates\pr1\1.obj pr1 Error 2 error LNK2019: unresolved external symbol "public: __thiscall Deque<int>::Deque<int>(void)" (??0?$Deque@H@@QAE@XZ) referenced in function _main D:\!_Private\VS C++\UP\sln_templates\pr1\1.obj pr1 Error 3 error LNK1120: 2 unresolved externals D:\!_Private\VS C++\UP\sln_templates\Debug\pr1.exe 1 1 pr1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 февраля, 2013 Жалоба Поделиться Опубликовано 27 февраля, 2013 (изменено) Rika23 Если у тебя все это в одном файле, надо убрать подключения несуществующего в этом случае Deque.h, или выделить Deque.h в отдельный файл. Тогда у меня компилируется и работает, правда, в Dev-C++, Visual C++ у меня не установлен. И повторное подключение #include <iostream> #include "Deque.h" тоже не нужно, хотя и не страшно. Для более явной проверки работы конструктора можешь временно заменить return count; на return 111; и в main добавить cout << d.size(); Изменено 27 февраля, 2013 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Rika23 Опубликовано 27 февраля, 2013 Жалоба Поделиться Опубликовано 27 февраля, 2013 Спасибо, теперь все работает. Получается, что нельзя разделять определение шаблонного класса и объявление по разным файлам. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти