【问题标题】:How to add a certain amount of elements in a vector without using a loop C++如何在不使用循环 C++ 的情况下在向量中添加一定数量的元素
【发布时间】:2021-07-18 15:33:55
【问题描述】:

我试图在位于类内的向量中添加 100 个元素,但我不能使用 for 循环,因为向量是在函数外部定义的。有什么方法可以让我添加这些值而无需手动列出它们?

class Player
{
    vector<bool> able; // set 10 values to 0
    vector<bool> tertiary; // set 100 values to 0
    
    void other_funcs()
    {
        //stuff
    }
}

【问题讨论】:

  • “我不能使用 for 循环,因为向量是在函数之外定义的” - 这不会阻止您使用 for 循环。
  • 如果您可以在没有循环的情况下将项目添加到向量中,那么您可以使用循环添加它们。或许您可以详细说明//stuff
  • 你不能在类中使用 for 循环,它必须在函数内完成。这样做会引发错误:在“for”之前预期的 unqualified-id。
  • 向我们展示错误代码。你有一个不同的问题。听起来您正试图将代码放在一个不起作用的函数之外,但与它是否是一个类无关。

标签: c++ class vector


【解决方案1】:

使用std::fill:

std::fill(able.begin(), able.begin() + 10, 0);

确保您的向量有足够的空间来执行此操作:

std::vector<bool> able(10);

【讨论】:

  • 为什么不直接使用vector&lt;T&gt;(size, value)
【解决方案2】:

bool 的值实际上应该是 truefalse,尽管 0 将转换为 false

如果您想按照代码中的说明设置成员,您可以这样做:

class Player
{
    std::vector<bool> able = std::vector<bool>(10, false);
    std::vector<bool> tertiary = std::vector<bool>(100, false);

    void other_funcs()
    {
    }
};

语句std::vector&lt;bool&gt;(10, false) 构造了一个向量,其中10 元素全部设置为false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2020-02-29
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    相关资源
    最近更新 更多