c++ - 如何从 C++ 中的函数返回一个 vector<T>

标签 c++ generics vector

我正在创建一个通用数据结构,我想返回一个 vector ,其中包含我的结构中的一些对象。

我试过了

template<class T>
vector<T> DataStructure<T>::getItems(int count)
{
    vector<T> items;
    for(int i = 0; i < count; i++)
        items.push_back(data[i]);      
    return items;
}

但是编译器说

错误:ISO C++ 禁止声明没有类型的“vector ”

错误:应为“;”在 '<' 标记之前

最佳答案

vector未定义。

您需要 #include <vector>并使用 std::vector 指定其命名空间或者放一个 using namespace std;在您的函数中或在全局范围内(应避免后一种建议)。


#include <vector>

template<class T>
std::vector<T> DataStructure<T>::getItems(int count)
{
    std::vector<T> items;
    for(int i = 0; i < count; i++)
        items.push_back(data[i]);      
    return items;
}

关于c++ - 如何从 C++ 中的函数返回一个 vector<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4808965/

相关文章:

python - 使用 Python 解析 Adob​​e Illustrator (.ai) 文件

c++ - BGL - 传递给访问者函数的图形忘记了顶点属性

c++ - 使用重载运算符不明确

java - 如何在没有警告的情况下转换 java.lang.Class<?> 类型的对象?

c# - typeof 和 is 关键字有什么区别?

c++ - 如何解释 sizeof(std::vector<int>) 的值?

c++ - 传递对对象的引用有什么好处?

c++ - 具有自己的内存分配的类的设计

c# - 具有泛型和 `InternalsVisibleTo` 的内部构造函数

java - 我可以使用对象的 vector 来存储扩展该对象的多种类型的对象吗