`
aigo
  • 浏览: 2647613 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

C++11的std::array初始化问题

阅读更多

 

std::array中的元素必须在编译期间就要初始化,否则会出现一下错误:

error C2280: 'std::array<>::array(void)': attempting to reference a deleted function

 

std::array正确的使用方法如下:

std::array<int, 3> a1{ {1, 2, 3} };

 

如果元素是动态添加的,使用std::vector。

 

总结:
std::vector相当于java中的ArrayList;而std::list相当于java中的LinkedList;std::unordered_map相当于java中的HashMap

 

 

分享到:
评论

相关推荐

    深入理解C++11:C++11新特性解析与应用(62M高清扫描版)

    在C++11之前,声明变量时需要显式指定类型,而`auto`关键字允许编译器根据初始化表达式自动推断变量的类型,这大大简化了代码编写,尤其是在使用模板和复杂类型时。 其次,C++11加强了对智能指针(Smart Pointers)...

    C++array介绍及详细使用示例(源代码)

    上述代码声明了一个含有5个整数的`std::array`对象`arr`,并使用了初始化列表进行初始化。 2. **访问元素** - **使用下标**:可以直接使用下标访问元素。 ```cpp std::cout 访问第一个元素: " [0] &lt;&lt; std::endl...

    深入理解C++11:C++11新特性解析与应用(完整、扫描版)

    《深入理解C++11:C++11新特性解析与应用》这本书是C++开发者的重要参考资料,它全面深入地探讨了C++11标准引入的新特性及其在实际编程中的应用。C++11是C++语言的一个重大更新,极大地提高了代码的效率、安全性和...

    C++11-14教程.pdf

    在容器和算法方面,C++11新增了std::array和std::forward_list等容器,以支持固定大小的数组和单向链表。无序容器,如unordered_map和unordered_set的引入,为存储和检索键值对提供了更高效的实现。std::tuple的加入...

    C++11参考文档

    10. **统一的构造函数初始化**:统一初始化语法(List Initialization)使用花括号`{}`,使得初始化更加一致,减少了错误。 11. **核芯异常安全性(Core Language Exception Safety)**:C++11强调了异常安全性的...

    C++stack介绍及详细使用示例(源代码)

    - **初始化**:可以使用列表初始化或指定每个元素的值。 #### 六、std::array 实际使用案例 接下来是一个使用 `std::array` 的示例,展示了如何创建一个包含五个整数的数组,并进行遍历输出以及特定元素的访问: ...

    c++11/14/17

    C++14和C++17对C++11进行了重要的补充和优化,比如添加了if初始化语句、结构化绑定和模板的变量模板等。 C++20作为下一个C++标准,预计会加入更多新特性,如概念(ConceptsTS)和非类型模板参数的auto等,这将使得...

    STL容器之array和vector.zip

    `std::array`是C++11引入的一个固定大小的数组容器。它的大小在创建时就必须指定,并且在容器的整个生命周期内不能改变。`std::array`提供了一种安全、类型安全的方式来操作固定大小的数组。相比于C语言中的原始数组...

    c++99和c++11规范原版pdf

    7. **统一初始化(Uniform Initialization)**:使用花括号{}进行统一的初始化方式,使得构造对象更加简洁且不易出错。 8. **强类型枚举(Strongly-Typed Enums)**:通过enum class关键字创建的枚举类型,避免了...

    深入理解c++11新特性

    C++11还引入了统一的初始化语法,用花括号`{}`来初始化数组、结构体等,使得初始化更加清晰,减少了传统C++中的陷阱。 另外,C++11扩展了标准库,包括`std::unordered_map`和`std::unordered_set`等容器,提供了...

    C++之boost::array的用法

    `boost::array`可以转换为`std::array`(C++11引入的类似容器),或者通过`data()`成员函数获取底层的原始指针,与传统的C风格数组进行交互: ```cpp int* c_array = array_temp.data(); ``` 总之,`boost::array`...

    C++map介绍及详细使用示例(源代码)

    - **初始化**:使用初始化列表 `{1, 2, 3, 4, 5}` 来初始化数组。 - **遍历**:使用范围基的 for 循环遍历数组中的所有元素。 - **访问特定元素**:通过下标直接访问数组中的特定元素。 #### 总结 本文详细介绍了 ...

    c++11FAQ中文版

    - 类型推断(auto):允许编译器从初始化表达式推断变量类型。 - constexpr:允许在编译时计算常量表达式的值。 - decltype:用于推断表达式的类型。 - Lambda表达式:简化了创建匿名函数对象的过程。 - 用户...

    C++11最新规范

    - 支持统一的初始化语法,无论是直接初始化还是复制初始化。 - 示例:`int i{42};` #### 标准库扩展 C++11对标准库进行了扩展,增加了许多实用的工具和容器。 - **新增容器**: - `std::array`:固定大小的...

    C++11标准库比较全面.rar

    《C++11标准库比较全面.rar》是一个包含有C++编程语言相关资源的压缩文件,特别是关于C++11标准库的详细信息。C++11是C++语言的一个重要版本,它引入了大量的新特性、优化和改进,极大地提升了C++的现代性和实用性。...

    C++智能指针详解.pdf

    `make_shared`函数用于方便地创建和初始化共享对象。 3. **std::unique_ptr**:此智能指针在C++11中引入,用于独占所有权的内存管理。一旦创建,对象不能被其他std::unique_ptr共享,除非使用特制的转移操作。这...

    C++11FAQ中文版pdf(带完整书签141页)

    9. **统一的初始化器**:C++11要求构造函数使用等号或圆括号进行初始化时应保持语义的一致性,统称为统一初始化器。 10. **通用属性(Attributes)**:C++11允许在声明中添加属性,使得编译器可以进行额外的检查或...

Global site tag (gtag.js) - Google Analytics