关于C++智能指针初始化问题

struct s{......}//声明了一个结构
vector< s>temp(10);//一个矢量,已初始化
vector< shared ptr< s>>sps(temp.size());//一个智能指针矢量

然后怎么把这个智能指针矢量用new初始化为temp中的值?

0

1个回答

vector中每个元素一很个个赋值,用temp中每个元素地址

0
Tach1banA
别在碗里放花菜啊 我试过这样 然后出现: error C2678: 二进制“-”: 没有找到接受“std::shared_ptr<Review>”类型的左操作数的运算符(或没有可接受的转换)
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【C++11新特性】 C++11智能指针之shared_ptr
C++中的智能指针首先出现在“准”标准库boost中。随着使用的人越来越多,为了让开发人员更方便、更安全的使用动态内存,C++11也引入了智能指针来管理动态对象。在新标准中,主要提供了shared_ptr、unique_ptr、weak_ptr三种不同类型的智能指针。接下来的几篇文章,我们就来总结一下这些智能指针的使用。今天,我们先来看看shared_ptr智能指针。
如何回答C++面试中关于智能指针的问题?
如何回答C++面试中关于智能指针的问题? 1、  什么是智能指针? 2、  分析下常见的智能指针有哪些? 3、实现一个智能指针呗?(没具体说写哪个,建议默认写:unique_ptr) 1、答:智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露(利用自动调用类的析构函数来释放内存)。它的一种通用实现技
使用智能指针的注意事项
1. 使用unique_ptr以替代auto_ptrauto_ptr是C++98标准库提供的一个智能指针,但已被C++11明确声明不再支持。auto_ptr具有以下缺陷: * auto_ptr有拷贝语义,拷贝后源对象变得无效,这可能引发很严重的问题;而unique_ptr则无拷贝语义,但提供了移动语义,这样的错误不再可能发生,因为很明显必须使用std::move()进行转移。#include <i
【C++】智能指针详解
参考资料:《C++ Primer中文版 第五版》 我们知道除了静态内存和栈内存外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时,我们的代码必须显式的销毁它们。 在C++中,动态内存的管理是用一对运算符完成的:new和delete,new:在动态内存中为对象分配一块空间并返回一个指向该对象的指针,delet...
C++智能指针循环引用问题分析
C++11中引入了三种智能指针,分别是shared_ptr、weak_ptr和unique_ptr 智能指针的作用 智能指针可以帮助我们管理动态分配的堆内存,减少内存泄漏的可能性 手动管理堆内存有引起内存泄漏的可能,比如这段代码 try { int* p = new int; // Do something delete p; } catch(...) { // C...
C++的RAII和智能指针小结
RAII:资源分配即初始化,利用构造函数和析构函数定义一个类来完成对资源的分配和释放智能指针主要用来防止内存泄漏,我们来举个栗子,看看为什么会有智能指针这个东东例1:650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/7E/9B/wKiom1cFEh6BAN-AAABe101cjJc063.png" title="Image.png"
智能指针的实现----C++练手项目
1.学习C++过程中,总会去思考,怎么才能去提高自己的编程水平,毕竟,我是个菜鸟,我需要去练习来维持我的学习状态。 正如古人所说的,纸上谈兵。我觉得纸上谈兵也是一种很厉害的东西,但是我是个菜鸟,还没能达到纸上谈兵的阶段。所以 按照知乎上所说的,平常多看代码,每天,保持练习,才能入门C++。   2.听从前人的经验,刚开始,没有水平能够自己创造就去抄,应该叫做默写,先理解智能指针是什么?有什么
Qt 智能指针实例
#include #include #include #include #include class MyClass { public: MyClass():str("null") {} MyClass(const MyClass &rhs):str(rhs.str) {} MyClass &operator=(const MyClass &rhs
必须要注意的 C++ 动态内存资源管理(五)——智能指针陷阱
十二.小心使用智能指针。         在前面几节已经很详细了介绍了智能指针适用方式。看起来,似乎智能指针很强大,能够很方便很安全的管理我们的资源。然而其实不然,如果不恰当的使用智能指针有时候会在很不起眼的地方造成内存泄漏。在这一节中主要介绍在使用智能指针过程中有哪些地方需要注意,以及 shared_ptr 在使用上的缺陷。 十三.使用智能指针的5个条款 条款1:不要把一个原生指针给多个share
智能指针和数组
转自:http://www.cnblogs.com/darkknightzh/p/5462363.html   默认情况下,std::shared_ptr会调用delete来清空内存。当使用new[] 分配内存时,需要调用delete[] 来释放内存,否则会有内存泄露。 可以通过以下代码来自定义释放内存的函数:   1 template&amp;lt; typename T &amp;gt; 2 st...
c++11智能指针解析——揭开底层面纱,完整理解智能指针
昨天跟同事小小的研究了下关于不同平台下,起因是遇到了一个坑,vs上没有问题,在安卓上却崩溃了。找了半天后发现是c++字节补齐问题,期间包括使用#pragma pack(1)来限定字节对齐方式等各种条件,也是把我们搞的七晕八素,总算是进一步了解了c++对象结构以及编译器的操作(有机会的话也补充下字节对齐的理解)。进而想到了智能指针,稍微了解下。第一次接触智能指针,天知道大学期间自己有多不努力,很多知
容器vector的resize操作 & 智能指针shared_ptr的reset操作
智能指针shared_ptr常使用的一种场景是:智能指针数组,即将多个指针放在同一个容器(比如vector)里。
C++ 智能指针(及循环引用问题)
何所谓智能指针? 所谓的智能指针就是智能/自动化的管理指指针所指向的动态资源的释放。 智能指针的产生是由于C++中没有内存的自动回收机制,每次new出来的空间都需要delete,而个别情况下,总是无法及时的delete,或者异常导致程序提早退出,造成内存泄漏,故而产生智能指针。智能指针的发展可分为三个阶段 (1)auto_ptr c++98 (2)scoped_ptr/s
智能指针(三):weak_ptr浅析
前言 weak_ptr这个指针天生一副“小弟”的模样,也是在C++11的时候引入的标准库,它的出现完全是为了弥补它老大shared_ptr天生有缺陷的问题,其实相比于上一代的智能指针auto_ptr来说,新进老大shared_ptr可以说近乎完美,但是通过引用计数实现的它,虽然解决了指针独占的问题,但也引来了引用成环的问题,这种问题靠它自己是没办法解决的,所以在C++11的时候将shared_p...
C++11的智能指针(常见面试问题)
Q:讲讲智能指针吧。 A:三种智能指针,shared_ptr,unique_ptr,weak_ptr。 Q:shared_ptr的原理 A:shared_ptr维护了一个指向control block的指针对象,来记录引用个数。 Q:weak_ptr的原理 A:weak_ptr用于避免shared_ptr相互指向产生的环形结构,造成的内存泄漏。weak_ptr count是弱引用个数;弱...
Boost智能指针-基础篇
简介 内存管理一直是 C++ 一个比较繁琐的问题,而智能指针却可以很好的解决这个问题,在初始化时就已经预定了删除,排解了后顾之忧。1998年修订的第一版C++标准只提供了一种智能指针:std::auto_ptr(现以废弃),它基本上就像是个普通的指针:通过地址来访问一个动态分配的对象。std::auto_ptr之所以被看作是智能指针,是因为它会在析构的时候调用delete操作符来自动释放所包
十大愚蠢的错误,以避免与C ++ 11智能指针
Top 10 dumb mistakes to avoid with C++ 11 smart pointers I love the new C++ 11 smart pointers. In many ways, they were a godsent for many folks who hate managing their own memory. In my opinion
原生指针 泛型指针 智能指针 都是什么?
R.T A. 原生指针       就是最普通的指针,定义类似: 类型 *变量名;      与之对比的是使用上有类似指针的功能 实际并不是指针。比如:迭代器      [一个类重载 *和->操作符 那么可以像指针一样使用  但是这种并不是原生的] B. 泛型指针      第一种就是 void *指针 可以指向任意的数据结构 因此可以称为"泛型"。      第二种就是指具有指
C++智能指针——探究六个常见的智能指针的使用及原理
一、智能指针 1.什么是智能指针? ——是一个类,用来存储指针(指向动态分配对象的指针)。 2.智能指针满足的条件: 1.具有RAII思想 2.能够像指针一样(运算符重载,解引用,指向对象成员) 3.对资源进行封装和管理 RAII思想(资源分配及初始化) 1.定义一个类来封装资源的分配与释放, 2.构造函数中完成资源的分配及初始化; 3.析构函数中完成资源的清理,可以保证资源的正确...
智能指针的交叉引用问题及解决方法
*本篇讨论一下因为智能指针的交叉引用造成的内存泄漏问题和解决方法。。。→_→*
C++ boost智能指针详解
一、简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行delete 的情况并不罕见。 用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::shared
C++智能指针解决内存泄漏问题
在C++开发中,好多程序员经常会被内存泄漏问题困扰,使用智能指针就可以减少内存泄漏。智能指针可以自动删除分配的内存。智能指针和普通指针类似,只是不需要手动释放指针,而是通过智能指针自己管理内存的释放。
boost中的智能指针
(一)、vs2017配置boost库 (1)、boost官网是http://www.boost.org/,目前最新的版本是1.65.1,可以到这里下载。下载页面里有Unix和Windows的源码,以及Windows版本的第三方二进制包。下载最新版本的就行。 (2)、下载完成后解压到一个目录,例如我就放到了D:\DevTools\boost_1_67_0,目录结构如下图。 (3)、将上面的文件...
C++类中指针成员的管理(值型类、智能指针)
在使用C++类的时候免不了会遇到类中需要指针成员的时候,但类成员里面一出现指针就很容易一不小心碰上各种各样的麻烦,尤其需要注意的是类对象的初始化和赋值,下面总结了一些常见解决办法。先来看看这样一个类:#include <iostream> #ifndef DEMO_H_ #define DEMO_H_using std::cout; using std::endl; class Demo {
c++内存问题整理与智能指针使用
公司里小组组织c++知识的分享会,正好我手上碰到过几个purify的内存泄露问题,就借这里总结一下c++的内存问题。   借鉴陈硕总结的分类,c++大致的内存问题有以下几个方面:   1.缓冲区溢出   在使用自己编写的缓冲区或者使用不安全的函数时,会遇到类似数组越界的缓冲区溢出问题,Linux内核的解决办法是栈随机化,金丝雀的检测,具体的攻击手段和例子,可以参考我另一篇的buffer lab
讲讲智能指针的缺点
智能指针有什么不足之处?我能想到的1 循环引用2 基于引用计数的一些性能损耗还有其他的缺点吗?相对比来说GC比智能指针又有什么优势呢不朽战魂林登万己所不欲,勿施于人9 人赞同了该回答智能指针的设计理念是没有问题的,各位说风格不一致问题的,是因为还在用老的理念用新东西。和普通指针相比,智能指针通过引用计数,实现了资源回收。智能指针是为了减轻程序员直接管理内存。和new混杂使用是习惯问题,不是智能指针...
怎样管理C++类中的指针成员 和 简单的c++智能指针使用的例子
管理指针成员_imaging_新浪博客 http://blog.sina.com.cn/s/blog_9ce5a1b5010135oc.html 大多数c++类采用以下三种方法之一管理指针成员: 1、指针成员采取常规指针型行为。这样的类具有指针的所有缺陷但无需特殊的复制控制。 2、类可以实现所谓的“智能指针”行为。指针所指向的对象是共享的,但类能够防止悬垂指针。
实战c++中的智能指针unique_ptr系列--通过unique_ptr对shared_ptr进行初始化
首先需要明确的是,这篇文章不是要描述unique_ptr和shared_ptr两个只能指针之间的区别,主要就是为了用unique_ptr对shared_ptr进行初始化。#include <iostream> #include <memory>int main() { std::cout << "start!\n"; auto customArrayAllocator = [](un
智能指针的使用及注意事项
1.为什么要使用智能指针? opencv中对为什么使用智能指针的说法阐述得非常好 -Default constructor, copy constructor, and assignment operator for an arbitrary C++ class or C structure. For some objects, like files, windows, mutexes, so...
智能指针管理通过new创建的对象
来自《编写高质量代码:改善C++程序的150个建议》读书笔记
C++智能指针shared_ptr讲解与使用
手动管理的弊端 在简单的程序中,我们不大可能忘记释放 new 出来的指针,但是随着程序规模的增大,我们忘了 delete 的概率也随之增大。在 C++ 中 new 出来的指针,赋值意味着引用的传递,当赋值运算符同时展现出“值拷贝”和“引用传递”两种截然不同的语义时,就很容易导致“内存泄漏”。 手动管理内存带来的更严重的问题是,内存究竟要由谁来分配和释放呢?指针的赋值将同一对象的引用散播到程序各处,...
【C++11新特性】 C++11智能指针之shared_ptr
原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/50750037 C++中的智能指针首先出现在“准”标准库boost中。随着使用的人越来越多,为了让开发人员更方便、更安全的使用动态内存,C++11也引入了智能指针来管理动态对象。在新标准中,主要提供了shared_ptr、unique_ptr、weak_ptr三种不同类型的智能指
c++智能指针(三)之shared_ptr和new结合使用
shared_ptr和new结合使用我们除了使用make_shared来初始化一个智能指针,还可以使用new返回的指针来初始化智能指针。shared_ptr<int> p1(new int(42));//p1指向一个值为42的int shared_ptr<int> p2 = new int(1024);//错误,不能将一个内置指针隐式转化为智能指针。我们不能将一个内置指针隐式转化为智能指针。
对象指针、this指针和智能指针
对象指针 指向的是一个对象,定义形式为: *类名 对象指针名; 那如何通过指针访问对象成员呢? 对象指针名-&amp;amp;gt;成员名 例:使用指针来访问Point类的成员 #include using namespace std; class Point { public: Point(int x = 0, int y = 0) : x(x), y(y) { } int getX() const {...
智能指针auto_ptr、内存泄漏解决
在C++11中,已经不使用auto_ptr,而用 unique_ptr进行替代,不过二者原理都差不多。头文件:memory智能指针:实质上是一个类,在创建智能指针的时候,本质上是在栈上创建了一个对象,而析构函数总是会在出栈时被调用,清理会自动进行。unique_ptr(auto_ptr)通过在栈上构建一个对象a,对象a中动态分配内存指针p,所有对指针p的操作都转为对对象a的操作。而在a的析构函数中
C++智能指针作为成员变量
class Device { }; class Settings { Device *device; public: Settings(Device *device) { this-&amp;gt;device = device; } Device *getDevice() { return de...
C 语言实现智能指针
C 语言实现指针的自动释放
C++ Primer第五版笔记——智能指针
智能指针 智能指针与常规指针的重要区别在于前者负责自动释放所指向的对象; 智能指针也是一种模板,需要提供可以指向的类型; 为了更容易的管理动态内存,新的标准库提供了两种智能指针类型: shared_ptr允许多个指针指向同一个对象; unique_ptr则“独占”所指向的对象。 标准库还定义了一个名为weak_ptr的伴随类,它是一种弱引用,指向shared_ptr所管理的对象。以上三...
C++之对象初始化详解
对象在创建时获得了一个特定的值,我们说这个对象被初始化。初始化不是赋值,初始化的含义是创建变量赋 予其一个初始值,而赋值的含义是把当前值擦除,而以一个新值来替代。 默认初始化:         如果定义变量时没有指定初值,则变量被默认初始化,此时变量被赋予了“默认值”         1、如果是内置类型的变量且未被显示初始化,它的值由位置决定。定义在任何函数体之外的变量被初始化
Android 智能指针详解 -- sp
前言: 闲下来的时候总是会让自己反思一些过去,过去碰到的问题,过去留下的遗憾,过去自己的软弱。 只有不停的强大自己,未来的路才有可能更平坦一些。 继续加油~~
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 关于云计算