相关疑难解决方法(0)

清除矢量会影响其容量吗?

我实例化了一个std::vector foo(1000).

foo.size()现在是1000,foo.capacity()也是1000.

如果我清除矢量foo.clear(),size()现在是0,但是什么是capacity()?标准是否对此有所说明?

c++ size vector std capacity

24
推荐指数
2
解决办法
9407
查看次数

清除后为什么还可以访问数据向量?

是代码:

vector<double> samples;

int main()
{
    samples.resize(100);
    for(int i=0; i<100; i++) {
        samples[i]=i/100.0;
    }

    samples.clear();
    cout << "vector size: " << samples.size() << endl;
    cout << "... but samples[9]=" << samples[9] << endl;
}
Run Code Online (Sandbox Code Playgroud)

并输出它:

vector size: 0
... but samples[9]=0.09
Run Code Online (Sandbox Code Playgroud)

清除向量(大小为0)后,我仍然可以访问其数据.这是正常的吗?

参考说元素将被"销毁",但它似乎并不意味着"默认/空"值.

在其他语言中,我会在运行时收到"超出范围"的错误消息...

c++ vector stdvector

1
推荐指数
1
解决办法
116
查看次数

为什么不工作vector.clear()

需要帮助..请告诉我为什么"A.clear()"也没有清除第一栏?.................................................. ......

#include <iostream>
#include <vector>
using namespace std;

int N, M;
vector< vector<int> > A;
int main()
{
    cin >> N >> M;
    A.resize(N + 2);
    for (int i = 0; i <= N; ++i)
    {
        A[i].resize(M + 2);
    }
    A.clear();
    for (int i = 0; i <= N; ++i)
    {
        for (int j = 0; j <= M; ++j)
        {
            cout << A[i][j] << ' ';
        }
        cout << '\n';
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
2
解决办法
2078
查看次数

标签 统计

c++ ×3

vector ×2

capacity ×1

size ×1

std ×1

stdvector ×1