c++ - 数组而不是 vector 的 vector ,元素的 push_back()。 C++

标签 c++ arrays vector dynamic-arrays push-back

我使用vector of vector 的方法,出于性能原因想将其更改为array。但是我没能理解,如果我不知道在我的 while 循环中读取了多少数据,我该如何使用数组(动态)并将数据推送到数组的末尾。下面是片段。您能否解释一下如何在数组上执行它,因为 push_back() 仅适用于 vector ?将不胜感激。

std::vector<vector<double>> v1;
while (1)
{
    ..../* some code, break condition aswell*/
    vector<double> tmp;
    while ( .../*new data available*/ ) 
    {
        ...
        tmp.push_back(data);
    } 
    v1.push_back(tmp);
}

最佳答案

A std::vector<T> 一个动态数组。什么可以加快你的代码是这样的:

std::vector<vector<double>> v1;
while (1)
{
    ..../* some code, break condition aswell*/
    v1.push_back(vector<double>());
    while ( .../*new data available*/ ) 
    {
        ...
        v1.back().push_back(data);
    } 
}

关于c++ - 数组而不是 vector 的 vector ,元素的 push_back()。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25244591/

相关文章:

C++ 在 Windows 和 Linux 上编译 : ifdef switch

c++ - 为什么必须在哪里放置 “template”和 “typename”关键字?

java - 数组显示法难点

Java:如何旋转非方形二维数组

c++ - 为什么这会发生在 vector 中

vector - 在 C++ 中执行 k 意味着在二进制向量上进行聚类的快速方法

c++ - 如何让 VS2015 正确地拒绝在类声明中使用类前缀?

javascript - 我不知道如何修复我的反向数组/字符串

arrays - Matlab:如何使 [1 3 5] 变为 [1 nan 3 nan 5]

c++ - 密文不是 block 大小的倍数