如何从c ++函数返回vector <T>

Ge3*_*3ng 4 c++ generics 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;
}
Run Code Online (Sandbox Code Playgroud)

但编译说

错误:ISO C++禁止声明'vector'没有类型

错误:预期';' 在'<'标记之前

peo*_*oro 8

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;
}
Run Code Online (Sandbox Code Playgroud)

  • 请不要推荐使用`using namespace`指令,它带来的不仅仅是它的价值:/ (2认同)