• std::vector的内存释放

    时间:2023-12-22 23:05:06

    先上一段代码using namespace std;class A{public:~A(){ cout << "deconstruct"; };};#include "vector"int main(){vector<A*>a(100);A *aaa = new A;a.pu...

  • 【opencv】cv::Mat转std::vector (注意两容器中数据类型的一致性)

    时间:2023-12-22 22:16:24

    获取cv::Mat大小:mymat.size()获取cv::Mat指定位置的值:需指定数据类型,且注意数据类型应与存入时的数据类型一致,否则会导致不抛出异常的数据错误mymat.at<float>(,i);欲将如下大小为1*17的cv::mat转为std::vector<cv::P...

  • 实战c++中的string系列--std:vector 和std:string相互转换(vector to stringstream)

    时间:2023-12-22 22:00:07

    string、vector 互转string 转 vectorvector  vcBuf;string        stBuf("Hello DaMao!!!");----------------------------------------------vcBuf.resize(stBuf.si...

  • std::vector介绍

    时间:2023-12-22 21:54:25

    vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用vector,必须在你的头文...

  • 编程杂谈——std::vector与List的性能比较

    时间:2023-12-22 21:46:05

    昨天在比较完C++中std::vector的两个方法的性能差异并留下记录后——编程杂谈——使用emplace_back取代push_back,今日尝试在C#中测试对应功能的性能。C#中对应std::vector的数据结构为List。更多的对应关系可以参照下面:std::vector - Listst...

  • 一文带你详细介绍c++中的std::move函数

    时间:2023-12-22 21:44:54

    前言在探讨c++11中的Move函数前,先介绍两个概念(左值和右值)左值和右值首先区分左值和右值左值是表达式结束后依然存在的持久对象(代表一个在内存中占有确定位置的对象)右值是表达式结束时不再存在的临时对象(不在内存中占有确定位置的表达式)便携方法:对表达式取地址,如果能,则为左值,否则为右值int...

  • std::vector的分片拷贝和插入

    时间:2023-12-22 21:33:45

    一般我们在用Qt的QByteArrary或者List的时候,会有相应的append的方法,该函数,就是把数据加入末尾。但是std::vector就没有相应的方法。但是我们可以用insert方法来实现:readBuffer.insert(m_readBuffer.end(), tmpreadBuffe...

  • (原创)动态内存管理练习 C++ std::vector 模拟实现

    时间:2023-12-20 20:06:02

    今天看了primer C++的 “动态内存管理类”章节,里面的例子是模拟实现std::vector<std::string>的功能。照抄之后发现编译不通过,有个库函数调用错误,就参考着自己写了一份简单的int版。实现思路:1.初始化时,容器容量为1。2.往容器添加数据时,如果容器没有放满...

  • C++ 11 左值,右值,左值引用,右值引用,std::move, std::foward

    时间:2023-11-22 18:28:55

    这篇文章要介绍的内容和标题一致,关于C++ 11中的这几个特性网上介绍的文章很多,看了一些之后想把几个比较关键的点总结记录一下,文章比较长。给出了很多代码示例,都是编译运行测试过的,希望能用这些帮助理解C++ 11中这些比较重要的特性。关于左值和右值的定义左值和右值在C中就存在,不过存在感不高,在C...

  • QList 和std::list的比较

    时间:2023-11-14 22:44:50

    QListQList<T> 是一个Qt通用容器类。它存储一序列的值,并且提供基于索引的数据访问方法和快速的插入和删除操作。QList<T>, QLinkedList<T>, 和 QVector<T>提供类似的功能,这里进行几点概述:1.     大多数...

  • std::shared_ptr 和普通指针的转换

    时间:2023-10-15 20:56:01

    相互转化见示例 struct test { int num; string name; }; test* pTest = new test(); std::shared_ptr<test> ptr_test = std::shared_ptr<test>(

  • C++ 实现vector 版本

    时间:2023-09-15 12:40:32

    #include <iostream> #include <vector> #include <memory> #include <thread> #include <type_traits> #include <typeinfo&...

  • terminate called after throwing an instance of 'std::bad_alloc'

    时间:2023-09-05 22:13:02

    这个错误,网上搜索到的资料大多是指向内存不足或者内存碎片问题,如下链接http://bbs.csdn.net/topics/330000462http://stackoverflow.com/questions/15671255/c-terminate-called-after-throwing-a...

  • 巧用std::shared_ptr全局对象释放单例内存

    时间:2023-08-26 21:05:13

    巧用std::shared_ptr单例的使用相对比较广泛,但是需要在程序退出前调用它的析构函数对数据进行释放,常规做法是在main函数末尾进行释放工作,但是这样相对比较繁琐,因此便有了利用全局变量由系统负载析构的特点,定义一个全局str::shared_ptr对象,对象指定对单例进行析构。因此不需要...

  • std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题

    时间:2023-05-12 20:52:14

    在std::shared_ptr被引入之前,C++标准库中实现的用于管理资源的智能指针只有std::auto_ptr一个而已。std::auto_ptr的作用非常有限,因为它存在被管理资源的所有权转移问题。这导致多个std::auto_ptr类型的局部变量不能共享同一个资源,这个问题是非常严重的哦。...

  • 标准C++类std::string的内存共享和Copy-On-Write...

    时间:2023-03-26 22:59:02

    标准C++类std::string的 内存共享和Copy-On-Write技术陈皓1、 概念Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,...

  • no matching function for call to ‘std::basic_string::assign(std::string&, int)

    时间:2023-02-17 19:08:10

    使用string中的assign赋值函数报错,代码为:text0.assign(line,i+);其中text0与line都为string类型最后发现assign函数的原型为string &assign(const char *s,int n);将代码改为以下即可text0.assign(l...

  • [3] 智能指针std::auto_ptr

    时间:2023-02-15 16:17:51

    【1】std::auto_ptr对于编译器来说,智能指针实质是一个栈对象,而并非指针类型。智能指针通过构造函数获取堆内存的管理所有权,而在其生命期结束时,再通过析构函数释放由它所管理的堆内存。所有智能指针都重载了“operator->”操作符,直接返回对象的引用,用以操作对象。访问智能指针原来...

  • std::string、std::wstring的关系

    时间:2023-02-11 20:19:19

    ①:std::string内部是char单字节字符 ②:std::wstring内部是WCHAR宽字符       通过上面的关系来看,他们之间的转换也就是wchar与char之间的转换.      #include <atlconv.h>      CString cstr...

  • std :: basic_string 会优于Windows上的std :: wstring吗?

    时间:2023-02-11 20:19:13

    As I understand it, Windows #defines TCHAR as the correct character type for your application based on the build - so it is wchar_t in UNICODE builds ...