#c
Вопрос:
Я практиковал шаблоны в первый раз, поэтому я подумал о создании шаблона для вектора в основной функции. И это выдало ошибку (ошибка: невозможно объявить ‘::main’ шаблоном). Если есть какое-то решение этой проблемы, пожалуйста, скажите.
Ниже приведен код, который я пробовал:
#include <iostream>
#include<vector>
using namespace std;
template <class T>
int main() {
T val;
vector <T> vec;
for(int i=0;i<3;i ){
cin>>val;
vec.push_back(val);
}
}
Комментарии:
1. Ошибка довольно очевидна, вы не можете этого сделать.
2. Как бы вы использовали
main()
данный тип?3. Чего бы вы ожидали, запустив эту программу?
4. @Рассказчик-UnslanderMonica: Может быть, он занимается встроенным программированием, и каждый персонаж имеет значение 😀
5. @StoryTeller-UnslanderMonica Может быть, они просто не подумали об этом решении.
Ответ №1:
То, что вы написали, является шаблонной основной функцией.
Я думаю, ты хотел сделать что-то большее, чем это
#include <iostream>
#include<vector>
using namespace std;
template <class T>
void func();
int main() {
func<int>();
}
template <class T>
void func()
{
T val;
vector <T> vec;
for(int i=0;i<3;i ){
cin>>val;
vec.push_back(val);
}
}
Здесь я создал функцию «func», шаблонированную на T.
При вызове из main с int в скобках он создаст функцию с int, заменяющую все «T».