<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[PYPARA的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/PYPARA</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; PYPARA]]></copyright><item><title><![CDATA[14.3.1]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/56844556</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/56844556</guid><author>PYPARA</author><pubDate>Fri, 24 Feb 2017 16:39:17 +0800</pubDate><description><![CDATA[14.16friend bool operator==(const StrBlob&, const StrBlob&);
friend bool operator!=(const StrBlob&, const StrBlob&);bool operator==(const StrBlob &lhs, const StrBlob &rhs)
{
    return *lhs.data == *rh]]></description><category></category></item><item><title><![CDATA[14.3]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/56844147</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/56844147</guid><author>PYPARA</author><pubDate>Fri, 24 Feb 2017 16:28:08 +0800</pubDate><description><![CDATA[14.13Sales_data& Sales_data::operator+=(const Sales_data &rhs)
{
    units_sold += rhs.units_sold;
    revenue += rhs.revenue;
    return *this;
}
Sales_data& Sales_data::operator-=(const Sales_data &r]]></description><category></category></item><item><title><![CDATA[14.2.2]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/56843506</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/56843506</guid><author>PYPARA</author><pubDate>Fri, 24 Feb 2017 16:08:37 +0800</pubDate><description><![CDATA[14.9std::istream& operator>>(std::istream &is, Sales_data &item)
{
    double price = 0.0;
    is >> item.bookNo >> item.units_sold >> price;
    if (is)
        item.revenue = price * item.units_sold;]]></description><category></category></item><item><title><![CDATA[14.2.1]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/56843038</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/56843038</guid><author>PYPARA</author><pubDate>Fri, 24 Feb 2017 15:51:15 +0800</pubDate><description><![CDATA[14.6friend std::ostream& operator<<(std::ostream&, const Sales_data&);std::ostream& operator<<(std::ostream &os, const Sales_data &item)
{
    os << item.isbn() << " " << item.units_sold << " " << item]]></description><category></category></item><item><title><![CDATA[14.1]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/56842497</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/56842497</guid><author>PYPARA</author><pubDate>Fri, 24 Feb 2017 15:28:20 +0800</pubDate><description><![CDATA[14.1 
内置运算符有明确的定义 
而重载的运算符的功能有你重载的版本决定当你重载的运算符和内置的含义和用法是一样的，那么可以认为它们是一样的14.2Sales_data& Sales_data::operator+=(const Sales_data &rhs)
{
    units_sold += rhs.units_sold;
    revenue += rhs.revenue;]]></description><category></category></item><item><title><![CDATA[List（double linked）]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/56291662</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/56291662</guid><author>PYPARA</author><pubDate>Tue, 21 Feb 2017 18:23:13 +0800</pubDate><description><![CDATA[简易版链表 ，目前还有些问题， 
1.由于构造函数中会new一个Node，所以链表中会对出一个由默认T()构造的Node 
2.打印链表中的元素非常不方便 
等/*
LIST-SEARCH(L,k)
x=L.head
while x!=NIL and key !=k
    x=x.next
return xLIST-INSERT(L,x)
x.next= L.head
if L.head!=NIL]]></description><category></category></item><item><title><![CDATA[Queue]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/55271526</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/55271526</guid><author>PYPARA</author><pubDate>Thu, 16 Feb 2017 20:18:39 +0800</pubDate><description><![CDATA[Queue.h#pragma once
template<class T>
class queue {
public:
    queue();
    ~queue();    bool enqueue(const T);
    T dequeue();
    bool empty() const;
    bool full() const;
private:
    T* data;]]></description><category></category></item><item><title><![CDATA[Stack]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/55261182</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/55261182</guid><author>PYPARA</author><pubDate>Thu, 16 Feb 2017 17:08:43 +0800</pubDate><description><![CDATA[简单版 Stack 
Stack.h#pragma once
template<class T>
class stack {
public:
    stack();
    ~stack();    bool empty();
    T pop();
    bool push(T);private:
    T* data;
    int top;};Stack.cpp#include"St]]></description><category></category></item><item><title><![CDATA[CountingSort]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/55050035</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/55050035</guid><author>PYPARA</author><pubDate>Mon, 13 Feb 2017 16:21:37 +0800</pubDate><description><![CDATA[/*
for i←1 to k
    do C[i] ←0
for j←1ton
    do C[A[j]] ←C[A[j]] + 1         ⊳C[i] = |{key = i}|
for i←2 to k
    doC[i] ←C[i] + C[i–1]               ⊳C[i] = |{key ≤i}|
for j←n downto 1
    do B[C[A[j]]></description><category></category></item><item><title><![CDATA[13.6.3]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54974269</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54974269</guid><author>PYPARA</author><pubDate>Fri, 10 Feb 2017 21:35:00 +0800</pubDate><description><![CDATA[13.55void push_back(string &&s) { data->push_back(std::move(s)); }13.56Foo Foo::sorted() const & {
    Foo ret(*this);
    return ret.sorted();
}将会无限递归 
因为ret是一个左值，ret.sorted() 调用的不是成员函数Foo Foo::sorted]]></description><category></category></item><item><title><![CDATA[13.6.2]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54974170</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54974170</guid><author>PYPARA</author><pubDate>Fri, 10 Feb 2017 21:23:19 +0800</pubDate><description><![CDATA[13.49StrVec(StrVec&&) NOEXCEPT;
StrVec& operator=(StrVec&&) noexcept;StrVec::StrVec(StrVec &&s) noexcept : elements(s.elements), first_free(s.first_free), cap(s.cap)
{    s.elements = s.first_free = s.]]></description><category></category></item><item><title><![CDATA[13.6.1]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54972080</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54972080</guid><author>PYPARA</author><pubDate>Fri, 10 Feb 2017 16:50:25 +0800</pubDate><description><![CDATA[13.45 
左值引用一般绑定在左值上 
右值引用引用对象将被销毁，对象没有其他用户13.46int f();  
vector<int> vi(100);
int&& r1 = f();
int& r2 = vi[0];
int& r3 = r1;
int&& r4 = vi[0] * f();13.47#include <memory>class String
{
public:
    Str]]></description><category></category></item><item><title><![CDATA[13.5]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54959019</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54959019</guid><author>PYPARA</author><pubDate>Thu, 09 Feb 2017 22:27:53 +0800</pubDate><description><![CDATA[13.39#include<string>
#include<memory>
using std::string;class StrVec {
public:
    StrVec():elements(nullptr),first_free(nullptr),cap(nullptr){}
    StrVec(const StrVec&);
    StrVec& operator= (const]]></description><category></category></item><item><title><![CDATA[13.4]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54946091</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54946091</guid><author>PYPARA</author><pubDate>Thu, 09 Feb 2017 12:51:27 +0800</pubDate><description><![CDATA[13.33 
因为我们需要改变Folder本身，所以必须是Folder&13.34 
@pezy#include <string>
#include <set>class Folder;class Message {
    friend void swap(Message &, Message &);
    friend class Folder;
public:
    explicit Me]]></description><category></category></item><item><title><![CDATA[13.3]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54897366</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54897366</guid><author>PYPARA</author><pubDate>Mon, 06 Feb 2017 21:50:49 +0800</pubDate><description><![CDATA[13.29swap(lhs.ps, rhs.ps);
swap(lhs.i, rhs.i);他们调用的是另一个版本的swap而不是 
swap(HasPtr&, HasPtr&) 
所以并不会递归13.30#include <string>
#include <iostream>class HasPtr {
public:
    friend void swap(HasPtr&, HasPtr&)]]></description><category></category></item><item><title><![CDATA[13.2.2]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54868727</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54868727</guid><author>PYPARA</author><pubDate>Sun, 05 Feb 2017 20:15:05 +0800</pubDate><description><![CDATA[13.27#include<string>using std::string;class HasPtr {public:
    HasPtr(const string& s = string()):ps(new string(s)),i(0),use(new size_t(1)) {}
    HasPtr(const HasPtr& p) :ps(p.ps), i(p.i), use(p.use]]></description><category></category></item><item><title><![CDATA[13.2.1]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54867511</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54867511</guid><author>PYPARA</author><pubDate>Sat, 04 Feb 2017 23:09:35 +0800</pubDate><description><![CDATA[13.23 
有一定差异，我使用if判断是否自我拷贝 
本节使用先拷贝右侧对象的方式来使自我拷贝正常运行13.24 
如果没有定义析构函数，肯定会发生内存泄露 
如果没有定义拷贝构造函数，当使用了拷贝构造函数时，删除一个对象会使和其他对象共用的内存被释放，其他对象则出现错误13.25 
拷贝构造和拷贝赋值必须新建内存，而不是和右侧共用内存当shared_ptr计时器为0时，会自动的释放，所以不需要析]]></description><category></category></item><item><title><![CDATA[13.2]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54866774</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54866774</guid><author>PYPARA</author><pubDate>Sat, 04 Feb 2017 22:35:41 +0800</pubDate><description><![CDATA[13.22#include <string>class HasPtr {
public:
    HasPtr(const std::string &s = std::string()) : ps(new std::string(s)), i(0) { }
    HasPtr(const HasPtr& hp) : ps(new std::string(*hp.ps)), i(hp.i) { }]]></description><category></category></item><item><title><![CDATA[13.1.6]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54866082</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54866082</guid><author>PYPARA</author><pubDate>Sat, 04 Feb 2017 21:10:16 +0800</pubDate><description><![CDATA[13.18#include<string>using std::string;class Employee {
    Employee(const string& aname):name(aname){
        id = increment++;
    }
    Employee() {
        id = increment++;
    }private:
    strin]]></description><category></category></item><item><title><![CDATA[13.1.4]]></title><link>https://blog.youkuaiyun.com/PYPARA/article/details/54865568</link><guid>https://blog.youkuaiyun.com/PYPARA/article/details/54865568</guid><author>PYPARA</author><pubDate>Sat, 04 Feb 2017 19:55:55 +0800</pubDate><description><![CDATA[13.14 
输出3个相同的数据13.15 
改变，会输出3个不同的数据 
但是这个数据和我们传入f的数据并不同。13.16 
改变，会输出3个不同的数据，但是数据和我们传入f的数据是一致的13.17 
正确
  https://github.com/PYPARA/Cpp-Primer/tree/master/ch13
#include <iostream>class numbered {
publ]]></description><category></category></item></channel></rss>