如何在 C++ 中返回从零开始的向量索引

Posted

技术标签:

【中文标题】如何在 C++ 中返回从零开始的向量索引【英文标题】:How to return a zero based indices of a vector in C++ 【发布时间】:2020-05-26 12:10:00 【问题描述】:

我有一个包含结构的向量。 例如:

structure A  int x; int y; int z;)
vector<A> myVectorA;

现在我需要一个函数,它告诉我返回 myVectorA 从 0 开始的索引,函数原型如下。

vector<size_t> get_A() const



我是初学者,不确定这个函数的用途以及从这个函数返回什么与vector&lt;size_t&gt;的返回类型相匹配。

有人可以帮忙吗?

编辑以添加更多信息。

我的向量myVectorA 是一个公共类成员,需要从vector&lt;size_t&gt; get_A() const 函数返回。但是查看函数原型,它返回vector&lt;size_t&gt; 所以我的问题是如何将一个结构A类型的向量(此处为myVectorA)转换为另一个vector&lt;size_t&gt;类型的向量

【问题讨论】:

缺少参数,函数应该返回哪些索引并不清楚 myVectorA包含6个元素时,函数应该返回0,1,2,3,4,5 ...您需要将代码格式化为代码,例如通过 按钮,才能正确显示&lt;&gt; "...不确定此功能的用途..." 如果您不知道,那么我们如何帮助您? 顺便说一句,“0-based”应该不是问题。在 c++ 中索引总是从 0 开始 【参考方案1】:

你的问题不够清楚。看看下面的答案是不是你需要的。在下面的函数中,get_A 将以[x0,y0,z0,x1,y1,z1,...] 格式返回 myvectorA 的所有元素。

#include <bits/stdc++.h>
using namespace std;

struct A  int x; int y; int z;;


vector<size_t> get_A(vector<A> myVectorA)

    vector<size_t>a;
    for(int i=0;i<myVectorA.size();i++)
        a.push_back(myVectorA[i].x);
        a.push_back(myVectorA[i].y);
        a.push_back(myVectorA[i].z);
     
    return a;



int main() 
    vector<A>myVectorA;
    A a1,2,3;
    A b4,5,6;
    A c7,8,9;
    myVectorA.push_back(a); // myVectorA now becomes - [1,2,3]
    myVectorA.push_back(b);
    myVectorA.push_back(c);// now I have pushed 3 instances of struct A. myVectorA now becomes - [1,2,3,4,5,6,7,8,9]

    vector<size_t>res = get_A(myVectorA); //will return [1,2,3,4,5,6,7,8,9]
    for(int i=0;i<res.size();i++)
        cout<<res[i]<<" ";     //prints all elements of myVectorA
    return 0;

输出 -

1 2 3 4 5 6 7 8 9 

【讨论】:

您的代码中有一个错误,一旦您在myVectorA 中使用多个点进行尝试,就会发现该错误 请阅读Why should I not #include &lt;bits/stdc++.h&gt;?和Why is “using namespace std;” considered bad practice? 顺便说一句,任务不太可能将ints 存储在vector&lt;size_t&gt; @idclev463035818:它甚至不会编译,不需要超过 1 分 :-) @Jarod42 哦,对了,我不想大声抱怨“你甚至没有测试你的代码”,因为我认为他们做了......

以上是关于如何在 C++ 中返回从零开始的向量索引的主要内容,如果未能解决你的问题,请参考以下文章

Keras深度学习实战(24)——从零开始构建单词向量

从零开始系列-R语言基础学习笔记之二 数据结构

从零开始实现数据结构 动态数组

Lucene全文检索-从零开始

索引(从零开始)必须大于或等于零?

索引(从零开始)必须大于或等于零单位