`

让人头痛的Vector(提问篇)

阅读更多

        在写完了此Vector非彼Vector这篇随笔之后,带着留下来的一个问题——Java中的Vector与STL中Vector的区别,我开始集中精力去了解STL中的Vector了。原本以为,有大名鼎鼎的好书《C++ Standard Library, The: A Tutorial and Reference》坐镇,进度应该会很挺快的,结果是被一个小问题绊倒,摔得满天星星,到现在还头痛呢。
        大家可以先看这段代码(在VC++6.0上编译执行):

#include <iostream>
#include 
<vector>

using namespace std;

void main() {
    vector
<int> vec;
    vec.reserve(
5);
    
    vec[
0= 0;  // 1 
    vec[1= 1;  // 2   

    
if(vec.empty())
    
{
       cout 
<< "The vector is empty!" << endl;
    }

}


        先问大家一个问题,"The vector is empty!"会被打印出来吗?如果将注释中的1、2两行改为:

vec.push_back(0);
vec.push_back(1);

你的答案又会是什么呢?    

分享到:
评论

相关推荐

    VectorCAST License安装手册.pdf

    VectorCAST License 安装手册 VectorCAST License 安装手册是 VectorCAST 软件的 License 管理工具安装指南,旨在帮助用户正确地安装和配置 VectorCAST License。下面是该手册中涉及到的知识点: 基本信息 * 软件...

    Vector产品手册电子版

    Vector公司在全球14个国家设有分公司,员工超过3000人,业务遍及全球。 Vector公司的价值理念是提供符合客户需求的创新解决方案,为客户提供最优质的产品和服务,并提供针对每个项目的定制化解决方案。Vector公司...

    自己实现的vector

    在C++编程中,`std::vector`是一个非常重要的容器,它提供了动态数组的功能,允许我们在运行时方便地增加或减少元素数量。然而,对于学习和理解C++内存管理和容器实现原理,尝试自己编写一个类似`std::vector`的数据...

    vector源代码下载

    《深入理解C++标准库中的`vector`容器》 在C++标准库中,`std::vector`是一个非常重要的容器,它提供了动态数组的功能。在本文中,我们将深入解析一个自定义实现的`vector`类模板,以帮助我们更好地理解和应用`std:...

    MFC的vector小例子

    在C++编程中,`std::vector`是一个非常重要的容器,它是STL(标准模板库)的一部分,由MFC(Microsoft Foundation Classes)框架所支持。`std::vector`是一个动态数组,可以方便地进行元素的添加、删除和访问。在这...

    Vector Cast使用手册

    《Vector Cast使用手册》 在软件开发过程中,测试是确保产品质量的重要环节。单元测试和集成测试作为两种关键的测试方法,对于发现代码中的错误和缺陷至关重要。Vector Cast是一款强大的自动化测试工具,它提供了...

    纯c语言向量vector实现vector_master

    首先,让我们理解一下向量(vector)的核心概念。向量是一个可变大小的一维数组,可以自动调整其容量以适应元素数量的变化。它支持在两端插入和删除元素,并能高效地访问和操作其中的元素。 在`vector_master`中,...

    Vector初始化的各种写法

    这篇博客“Vector初始化的各种写法”可能探讨了如何在程序开始时设置和填充一个Vector对象的不同方法。虽然没有提供具体的博客内容,但我们可以根据标题推测并详细阐述一些常见的Vector初始化技术。 1. **默认初始...

    VectorCAST.pdf

    1. VectorCAST工具介绍: - VectorCAST是一个嵌入式软件测试产品。 - 由Vector软件公司开发,这是一家位于美国的公司,成立于1990年,由嵌入式开发人员创立。 - VectorCAST的第一个产品是在1994年为洛克希德马丁...

    C语言下的vector

    10. **迭代器支持**:虽然C语言不支持STL式的迭代器,但可以创建简单的指针迭代器,让用户能够遍历`vector`的元素。 以上是C语言实现`vector`可能涉及的主要知识点。这样的实现允许程序员在C环境中享受到类似于C++ ...

    C++ Vector使用方法

    C++中的`std::vector`是一个非常重要的标准模板库(STL)容器,它提供了一种动态数组的功能。在C++编程中,`vector`经常用于处理动态大小的序列数据,其内部存储空间是连续的,这使得随机访问元素非常高效。下面我们将...

    C语言头文件 VECTOR

    C语言头文件 VECTORC语言头文件 VECTORC语言头文件 VECTORC语言头文件 VECTORC语言头文件 VECTORC语言头文件 VECTORC语言头文件 VECTORC语言头文件 VECTORC语言头文件 VECTORC语言头文件 VECTORC语言头文件 VECTORC...

    实现从vector中过滤重复的数据

    这篇博客文章“实现从vector中过滤重复的数据”提供了几种方法来解决这个问题。我们将深入探讨这些方法,并结合`map`和STL(标准模板库)中的其他工具进行讲解。 1. **基本遍历法** 最直观的方法是通过遍历`vector...

    vector的c语言实现

    在C++中,`std::vector`是一种非常重要的容器,它提供动态数组的功能,可以方便地进行元素的插入、删除和访问。然而,在C语言中并没有内置类似的数据结构。为了在C语言中实现类似`std::vector`的功能,我们需要...

    vector实现矩阵运算

    本篇文章介绍了如何使用 C++ 中的 `vector` 类来实现矩阵运算。通过嵌套 `vector` 的方式创建矩阵,不仅可以方便地初始化矩阵,还可以高效地进行矩阵的填充、相加等操作。此外,还讨论了 `vector` 的性能特点,帮助...

    vector1_STL_C++_vector_

    6. **其他方法**:`empty()`检查`vector`是否为空,`clear()`清空`vector`的所有元素,`swap(vector&lt;T&gt;& other)`交换两个`vector`的内容。 ### 效率考虑 虽然`vector`提供了许多便利,但在特定操作下,如在中间...

    Vector_FlashBootLoader功能以及产品.zip

    《Vector FlashBootloader功能及其产品概述》 在嵌入式系统开发中,Bootloader起着至关重要的作用,它是系统启动的第一步,负责加载操作系统或应用程序到内存中执行。Vector公司提供的Flash Bootloader(简称FBL)...

    Vector内部中文期刊

    Vector公司诞生于1988年,由三位创始人从数控机床控制程序入手,并以数学中的矢量概念作为公司名称,敏锐地把握了汽车电子总线领域即将出现的变革。公司最初专注于CAN总线测试工具,其中CANalyzer的开发人之一便是...

    vector flash

    根据提供的文件信息,我们可以深入探讨有关Vector Flash Bootloader的相关知识点。 ### Vector Flash Bootloader概述 Vector Flash Bootloader是一款专门用于微控制器(MCU)或嵌入式系统的闪存引导加载程序,它...

    (Vector Cast)UT 工程的总结问题

    这篇总结将深入探讨在Vector Cast环境下进行UT工程时可能遇到的问题以及解决方案。 1. **Vector Cast介绍**:Vector Cast 是一套全面的静态和动态测试工具,包括单元测试、覆盖率分析、静态分析等功能。它提供了一...

Global site tag (gtag.js) - Google Analytics