初始化时矢量大小不为零

时间:2017-03-03 09:12:57

标签: c++ vector omnet++ inet

我正在使用inet v3.4.0。我正在尝试创建一个移动模型。但每当我创建任何类型的std :: vector时,它都会以随机大小初始化。

初始化时,它的大小永远不会为零。这应该发生吗?因为从C ++向量,我看到在创建向量时,例如

var express = require('express');
var app = express();

var bodyParser = require('body-parser');
app.use(bodyParser.json({type: '*/*'}));
var server = require('http').createServer(app);

var io = require('socket.io')(server);

app.use(express.static('/opt/lampp/htdocs/testproject/'));

io.on('connection', function(client) {
    console.log("connected");
   client.emit("message", "Some thing to show");
});
server.listen(8080);

std::vector <int*> a; 的大小应为零。

2 个答案:

答案 0 :(得分:7)

恰恰相反; C ++标准要求默认构造的std::vector为零大小:

std::vector<int* /*for example, but the type is not relevant*/> a;
a.size() == 0; // this is true
a.empty(); // this is true

您是否正在使用调试器来检查a的明显“内容”?请注意,std::vector可以使用非零容量构建,作为内存管理优化。

(Acknowledge @molbdnilo:您无法使用sizeof(a)返回a中的元素数量。)

答案 1 :(得分:2)

不确定什么是inet,但我使用C ++将大小设为0:

#include <iostream>
#include <vector>

using namespace std;

int main()
{
        std::vector<int*> a;
        cout << "Size is : " << a.size() << endl;
        return 0;
}

输出:

Size is : 0