【问题标题】:How to define a vector in C++如何在 C++ 中定义向量
【发布时间】:2021-12-29 14:18:06
【问题描述】:

我只是想知道,如果我将向量设置为函数的原型,我该如何定义它? 我知道我可以选择使用动态内存分配,但我想知道是否可以只使用:

void Function(double vector[]) { }

在代码的主要部分中,为其分配一些条目?

这是一种可接受的方法吗?

【问题讨论】:

    标签: c++ arrays vector


    【解决方案1】:

    这样做

    template<class T>
    void Function(std::vector<T>& vector)
    {
        // do your thing
    }
    

    对于数组你也可以这样做

    template<int N>
    void Function(std::array& array)
    {
        // do your thing
    }
    

    【讨论】:

    • std::vector 不是有效类型,std::vector 将是有效的。
    • 做。或者不要。没有尝试。
    • @user4581301:在 C++ 中肯定有 try
    • @BenVoigt Ach!我是尤达版的!
    【解决方案2】:

    首先,您不应该使用 vector,因为它是标准库 (std::vector) 的一部分。

    如果你描述的向量总是有相同的维度,你可以创建一个结构:

    struct Vector3D
    {
      double x = 0.0;
      double y = 0.0;
      double z = 0.0;
    };
    

    然后在你的函数和main中使用它:

    void Function(Vector3D v) { }
    
    int main()
    {
      Vector3D v = {1.0, 0.0, 0.0}; // Unit X
      Function(v);
    
      return 0;
    }
    

    【讨论】:

    • 使用vector这个名字并没有错。标准库中的组件为std::vector;它在命名空间std 内。这就是命名空间的用途。是的,如果你用using namespace std; 吹走命名空间,你会遇到冲突。所以不要那样做。
    猜你喜欢
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 2017-04-15
    • 1970-01-01
    • 2010-12-20
    相关资源
    最近更新 更多