Можем ли мы объявить вектор в качестве шаблона в основной функции на c , если да, то как?

#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».