`
美丽的小岛
  • 浏览: 308860 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Array与Vector容器赋值效率比较

    博客分类:
  • c++
 
阅读更多

对比代码:

#include <iostream>
#include <vector>
#include <array>
#include <ctime>

const int count = 6000;
using std::vector;
using std::array;

int _tmain(int argc, _TCHAR* argv[])
{
    vector<int> v(count);
    array<int, count> a;

     time_t start,stop;
     start = clock();
     for (int j = 0; j < count; ++j)
     {
         for (int i = 0; i < count; ++i)
         {
             v[i] = i;
             //v.push_back(i);
         }
      }
    
     stop = clock();
     printf("Vector Use Time:%ld\n",(stop-start));
     start = clock();
     for (int j = 0; j < count; ++j)
     {
         for (int i = 0; i < count; ++i)
         {
             a[i] = i;
             //a.at(i) = i;
         }
     }
     stop = clock();
     printf("Array Use Time:%ld\n",(stop-start));
    std::system("pause");
	return 0;
}

 效果:



a[i] = i;与a.at(i) = i;效率一样。

v[i] = i; 比v.push_back(i);的时间少; 

  • 大小: 10.2 KB
分享到:
评论

相关推荐

    C++ STL vector 容器介绍

    学习`vector`容器时,还需要理解其与其他STL容器如`deque`、`list`和`array`的区别,以便在不同的场景下选择最合适的容器。例如,`deque`在两端插入和删除更高效,`list`则适合频繁的插入和删除,而`array`是固定...

    vector用法的源代码资源

    七、`vector`与其他容器的比较 - `array`:静态大小,不能动态调整,但没有内存开销。 - `deque`:提供类似`vector`的功能,但在两端插入和删除更快,但内存分布不连续。 - `list`和`forward_list`:使用链接节点...

    C++顺序容器,容器适配器,关联容器的操作

    本文将详细介绍几种常见的顺序容器,包括`vector`、`string`、`list`、`forward_list`、`deque`以及`array`,并且探讨这些容器的初始化、赋值、大小调整、元素添加与删除等基本操作。 #### 二、顺序容器详解 ##### ...

    c++ 自己动手实现STL容器之array

    这与动态数组如`std::vector`不同,后者可以在运行时动态调整大小。 2. **类型安全**:`array`是一个模板类,可以用于任何类型的元素,它确保了正确类型的元素只能被存入和取出。 3. **连续内存**:`array`中的元素...

    C++语言中std::array的用法小结(神器用法)

    std::array的构造函数、析构函数和赋值操作符都是编译器隐式声明的……这让很多用惯了std::vector这类容器的程序员不习惯,觉得std::array不好用。 但实际上,std::array的威力很可能被低估了。在

    一个类似数组的类(容器)

    容器类是C++标准库中的一个关键组成部分,如std::vector、std::array和std::list等,它们提供了不同的数据组织方式和操作接口。在这里,我们尝试模仿std::vector的行为,创建一个动态大小的Array类,它能够像数组...

    C++ vector----臭飯飯_C++_vector_

    在C++编程语言中,`std::vector`是标准模板库(STL)中的一种容器,它提供了动态数组的功能。`vector`是一个可以容纳任意类型的对象的容器,它能够自动管理内存,允许我们在运行时改变其大小。这个容器的灵活性使得它...

    《C++ Primer》学习笔记(27)顺序容器

    对于`array`容器,它不支持复制或赋值操作,但可以通过直接初始化的方式来创建新的`array`。例如: ```cpp std::array, 10&gt; digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; std::array, 10&gt; copy = digits; // 直接复制...

    程序设计-C and C++的实现:第7章 数组与C++标准库类模板vector.pdf

    数组与C++标准库类模板vector 本章节主要介绍数组和C++标准库类模板vector。数组是数据结构中的重要课题,数组数据结构由相同类型的多个数据项组成。矩阵是数组的延伸。了解数组数据结构、数组的声明、初始化、引用...

    第9章 顺序容器1

    顺序容器按照元素在内存中的排列顺序来访问和操作这些元素,包括vector、deque、list、forward_list以及array和string。这些容器各自有不同的特点和性能表现。 **vector** 是一个可变大小的数组,支持快速的随机...

    STL简单7终稿1

    本文将详细探讨STL中的两种主要容器:array和vector。 **1. STL容器:array** `std::array`是一个固定大小的顺序容器,它存储了一组严格线性排列的元素。由于其大小在创建后不可更改,因此适合用于需要高效访问但...

    二维数组指针动态创建+赋值+free[收集].pdf

    在软件开发中,动态内存管理是一项重要的技能...在实际开发中,应遵循最佳实践,如使用智能指针(在C++11及更高版本)来自动管理内存,或者使用容器类如`std::vector`和`std::array`,它们能更好地处理内存分配和释放。

    Initialize-the-array.zip_array.initialize

    // 使用C++11的std::array容器,更加安全和类型安全 ``` 此外,VC++还支持C++标准模板库(STL)中的`vector`,它可以动态调整大小,并且提供了一种更高级的初始化方法: ```cpp std::vector&lt;int&gt; vec = {1, 2, 3,...

    VS2015中STL源码解析1(霜之小刀)

    与传统动态数组或容器(如`vector`)不同,`array`的长度必须在编译时确定,并且不可变。这意味着一旦创建了一个`array`对象,其大小就无法更改。 ##### 特性 1. **固定大小**:`array`的大小在创建时由模板参数...

    CPP-array.rar_cpp array_cpparray

    在本资源"CPP-array.rar"中,我们将深入探讨C++中的动态数组,以及如何使用指针数组来实现动态内存分配,以达到灵活管理内存的目的。 动态数组与静态数组的主要区别在于,静态数组在编译时其大小就已经确定,而动态...

    STL详细终稿431

    STL,全称为Standard Template Library(标准模板库),是C++编程语言中的一部分,它提供了一组高效且灵活的容器、迭代器、算法和函数对象,极大地提升了C++程序员的工作效率。在“STL详细终稿431”中,我们可以看到...

    Boost.orgarraymodule.zip

    4. **轻量级**:`boost::array`不涉及动态内存分配,因此它的构造和复制开销比`std::vector`等动态容器小很多。这对于性能敏感的代码尤其有用。 5. **常量时间操作**:插入、删除和访问元素的时间复杂度都是O(1),...

    vector:矢量作业

    - `vector`支持下标(`[]`)、赋值(`=`)、比较(`==`, `!=`)、迭代器相加(`+`, `+=`)等操作。 9. **性能考虑** - 在`vector`中间插入或删除元素可能导致元素的移动,这可能影响效率。 - 在需要高效随机访问但不需要...

    第10章1

    顺序容器包括array、vector、deque、forward_list、list,它们按照元素插入的顺序存储和访问元素。关联容器如set、multiset、map和multimap则维护了元素间的某种排序关系。无序关联容器unordered_set、unordered_...

    C++精选代码库。包含常用STL容器模拟实现、algorithm算法头文件函数demo

    1. **数组(Array)**:虽然C++标准库中没有直接提供数组容器,但C++11引入了`std::array`,它是固定大小的数组,提供了安全的访问和操作。 2. **向量(Vector)**:`std::vector`是一个动态数组,可以自动调整大小...

Global site tag (gtag.js) - Google Analytics