值向量的向量与指向值向量的指针的向量

时间:2018-08-11 01:02:44

标签: c++ function pointers vector

我的问题似乎与vector of objects vs vector of pointers to objects类似,但阅读并没有回答我的问题。

我将避免详细说明为什么我的程序按其原样进行结构化,因为这并不是特别重要。

  1. 我有三个指针向量,这些指针指向长度未知的18个流向量(取决于输入)(让这些流向量共同称为A's(A1,A2 ... A18),而包含A的三个向量让我们调用B's (B1,B2和B3)
  2. 出于下面说明的原因,我有一个指向B的指针的矢量,让我们将此矢量称为C。

重申一下,我有一个vector(C),每个包含三个指针,指向vector(B),每个包含18个指针,指向streampos的vector(A)。

  • 我有一个函数nuc(),main()会调用120次。
  • nuc()是递归的,其自身调用约33000次(2 ^ 15)。
  • 每次调用nuc()时,函数nuc()都会调用一次check()函数(因此,我可以将check()移到nuc()中,而无需过多更改功能,只是使代码更加混乱)。 Check()是与我的A交互的函数。

每次main()调用nuc()时,都会将一个特定的B传递给nuc()(因为三个B各自包含18个A)。每次nuc()调用check()时,都会将相关的特定A(例如A16)传递给它。 Check()然后push_back()将值放入相关的A。

引起我注意的是,我需要为每个streampos向量生成一个int向量以承载相关信息,但是从字面上实例化108个向量似乎很奇怪。我一直在考虑将每个B实例化为18个向量的向量。

将值推入其子向量中是否会有任何问题push_back()?除了实例化108个向量的视觉愚蠢性之外,我是否还应该选择一个向量来代替向量指针的向量?除了我提到的向量,向量的向量比前者有什么好处?

很抱歉,这个问题很简单,这是我的第一个C ++程序,我浏览了大约7页关于该主题的页面,但是却很难找到答案。

这是一个伪代码示例:

fstream file1;
vector<streampos> A0_0...A0_18, A1_0...A1_18,...
vector<vector<streampos>*> B0 = {&A0_0...&A0_18},
                           B1 = {&A1_0...&A1_18}...
vector<vector<vector<streampos>*>*> C = {&B0, &B1, &B2}

main()
    string line;
    while(getline(file1,line))
        int B_determiner = line[-1] //suppose 0
        vector<vector<streampos>*> B = C[B_determiner] //suppose B0
        nuc(line, B)


nuc(string line,vector<vector<streampos>*> B) // B = B0
    string new_line = line.do stuff to line...
    A_determiner = new_line[0]
    A = B[A_determiner] //suppose A0, therefore A0_0
    check(new_line, A)

check(string new_line, vector<streampos> A) //A = A0_0
    streampos value = derive a streampos from new_line...
    A.pushback(value)

0 个答案:

没有答案