Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Односвязный список(помогите немного исправить) Задание: из списка удалить элементы меньше заданного. Наваял что-то, но нифига не получается) #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <iostream> #include <cstdlib> #define N 10 https://www.cyberforum.ru/ cpp-beginners/ thread543250.html Редактор многомерных динамических массивов C++
!!! Пишу в Microsoft Visual Studio ->Win32 Console application ->C++. !!! Помогите мне пожалуйста написать следующую "задачу", заранее большое спасибо! Условие: Создать проект, содержащий двумерный динамический массив, заполненный случайными числами. Высота и длина массива вводятся с клавиатуры. Реализовать 4 функции, каждая из которых принимает указатель на...
C++ Использование set https://www.cyberforum.ru/ cpp-beginners/ thread543217.html
Приветствую. Что-то я совсем глупый вопрос задам, но понять, где тут ошибка никак не могу: #include <iostream> #include <vector> #include <set> #include <utility> typedef std::set <std::pair <std::string, std::string> > myData;
C++ Архиваторы Доброго всем дня. Может ли кто-нибудь посоветовать простые программы по созданию архиватора? Обыскала чуть ли не весь интернет, но ничего нормального не нашла. В программировании не разбераюсь, а потому помощи прошу у вас) Заранее благодарю. https://www.cyberforum.ru/ cpp-beginners/ thread543206.html
создание классов C++
создать класс который осуществляет вывод на экран таблицы умножения с++
C++ Составить массив B так, чтобы элементы массива A[0..6, 0..6] следовали в нем в последовательности диагоналей параллельно побочной диагонали Дали лабораторную работу по информатике Задание: Составить массив В так, чтобы элементы массива A следовали в нем в последовательности диагоналей параллельно побочной диагонали и начинались с a, a, a... Помогите! Двумерный массив создаю, а дальше не знаю как. #include <stdio.h> #define N 7 #define M 7 #define N_MAX 50 #define N_MIN 1 int main(void) { https://www.cyberforum.ru/ cpp-beginners/ thread543192.html
C++ Почему выдает ошибку в строке "src.erase(p);" Задача из Bjarne Stroustrup - "The C++ Programming Language(3rd edition)": 6.3. (*2) Read a sequence of possibly whitespaceseparated (name,value) pairs, where the name is a single whitespaceseparated word and the value is an integer or a floatingpoint value. Compute and print the sum and mean for each name and the sum and mean for all names. 6.12. (*2) Modify the program from §6.6 to also... https://www.cyberforum.ru/ cpp-beginners/ thread543188.html C++ Заменить в строке все цифры 0, 1, 2, 3, ....., 9 на "ZERO","ONE","TWO","THREE", ....., "NINE" соответственно
Совсем недавно, точнее сейчас, доделал программу, которая выполняет следующее задание: Заменить в строке все цифры 0, 1, 2, 3, ....., 9 на "ZERO","ONE","TWO","THREE", ....., "NINE" соответственно. В программе использовались структуры, функции, файлы(ввод/вывод). По поводу ввода: он не совсем корректно работает. Что я имею ввиду: допустим, в файле несколько строк. В программе задается сколько...
C++ Табуляция функции - не сходится ответ https://www.cyberforum.ru/ cpp-beginners/ thread543119.html
Функция: Cn(x)=\gamma +\ln x+\int_{0}^{x}\frac{t-1}{t}dt Ряд Тейлора: Cn(x)=\gamma + \ln x +\sum_{n=1}^{\propto }\frac{{-1}^{n}{x}^{2n}}{2n(2n)!} Результат: Sum T - ряд Тейлора, Sum F(x) - приближенной значение функции в точке Ответ не сходится, никак не могу понять в чем дело:wall:
C++ Добавить столбцы после каждого парного столбца матрицы https://www.cyberforum.ru/ cpp-beginners/ thread543085.html
Одномерный массив: Удалить N элементов, начиная с номера К Двомерный массив: Добавить столбцы после каждого парного столбца матрицы.
C++ нахождения производной
Подскажите пожалуйста как релизовать вычисления производной функции одной переменной. Заранее спасибо.
C++ Упорядочить массив https://www.cyberforum.ru/ cpp-beginners/ thread543079.html
Здравствуйте. Не могу задать такой массив: 9х9 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 26 2 8 0 0 0 0 0 21 27 3 9 13 0 0 0 18 22 28 4 10 14 16 0 17 19 23 29 5 11 15 0 0 0 20 24 30
8 / 8 / 5
Регистрация: 10.04.2012
Сообщений: 34
10.04.2012, 03:46 0

использование шаблонов - C++ - Ответ 2893990

10.04.2012, 03:46. Показов 1201. Ответов 2
Метки (Все метки)

Ответ

1. подключить определение шаблона к той единице компиляции, где он используется. то есть добавить в main.cpp:
C++
1
#include "inp.cpp"

2. экспортировать шаблон:
C++
1
2
3
4
5
6
7
8
9
10
#ifndef _INPUT_H_
#define _INPUT_H_
 
#include <iostream>
#include <vector>
using namespace std;
 
export template <class T>
void input (vector<T>& arr);
#endif
но на вашем компиляторе (vs2005/8/10) не прокатит, т.к. ключевое слово export не реализовано


3. инстанцировать шаблон ручками:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "inp.h"
#include <vector>
#include <iostream>
using namespace std;
 
template <class T>
void input (vector<T>& arr)
{
 T x = 0;
 int i;
 while (cin >> x)
  {
    if (i == arr.size())
      arr.resize = ((arr.size() * 2) + 1);
    arr[i++] = x;
  }
 arr.resize(i);
}
 
template void input<vector<int> >(vector<int>&);
из минусов: данный способ - отличная возможность прострелить себе ногу(с), так что использовать его надо с умом.





причина ошибки:
компиляция в общем виде происходит следующим макаром.
1. main.cpp - компилятор находит шаблонную функцию input но не может её инстанцировать, т.к. тупо "не видит" тела функции, полагая, что где-нибудь оно есть, оставляет заглушку полагаясь на совесть линковщика, мол он найдёт необходимое в других единицах компиляции и подставит вызов на место заглушки.
2. inp.cpp - компилятор видит шаблон функции, но тут он не знает, что в main.cpp необходим вызов её с шаблонным параметром int, следовательно шаблон остаётся не инстанцированным
3. линковщик находит заглушку но не находит чем её заткнуть, делаеть ему нечего кроме как поругать пользователя:
inputTempl.obj : error LNK2019: unresolved external symbol "void __cdecl input<int>(class std::vector<int,class std::allocator<int> > &)" (??$input@H@@YAXAAV?$vector@HV?$allocator@H@std@@@std@@@Z) referenced in function _main

Вернуться к обсуждению:
использование шаблонов C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2012, 03:46
Готовые ответы и решения:

Использование шаблонов
Здравствуйте, пытаюсь набросать элементарный пример шаблона в Visual Studio 12 и получаю ошибку...

С++ использование шаблонов
Приветствую всех на форуме. Написал код с использованием шаблонов. Задание звучит так : ...

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

использование функций-шаблонов
для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода...

2
10.04.2012, 03:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2012, 03:46
Помогаю со студенческими работами здесь

Использование шаблонов функций
После си только начал изучение с++, так вот программа просто выводит минимум из двух чисел,...

Задача на использование шаблонов
Здравствуйте, ребята! Помогите, пожалуйста с задачкой на C++. Вот само задание: Для работы с...

Использование функций шаблонов
Использование функций шаблонов: для работы с двумерными массивами арифметических типов данных...

Использование функций-шаблонов
На уроке преподаватель не объясняет как решать. Задачи берутся из &quot;Основы программирования на языке...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru