hugDog
Android DevLog
hugDog
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ™Œ Hello? (162)
    • ๐Ÿงฉ์•ˆ๋“œ๋กœ์ด๋“œ (12)
      • ๊ฐœ๋… ์ •๋ฆฌ (5)
      • ๋ฒ„๊ทธ ํ•ด๊ฒฐ (4)
      • ๊ธฐํƒ€ (3)
    • ๐Ÿ”์•Œ๊ณ ๋ฆฌ์ฆ˜ (54)
      • ๊ฐœ๋… (0)
      • ๋ฐฑ์ค€ (48)
      • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
    • ๐Ÿ“„๊ฐœ๋ฐœ ์ผ์ง€ (0)
      • FINPO (0)
    • ๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (71)
      • C++ ์ •๋ฆฌ (49)
      • C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค ์—ฐ์Šต๋ฌธ์ œ (20)
      • Kotlin (2)
    • โญProject (1)
    • ๐ŸšดTIL (13)
      • Clean Code (13)
    • ๐Ÿšฉ๊ธฐํƒ€ (9)
      • ๋ชฉํ‘œ (6)
      • ์ผ์ƒ (3)
      • ๋ฌธ์„œ (0)

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
hugDog

Android DevLog

๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค ์—ฐ์Šต๋ฌธ์ œ

(C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค 6ํŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์Šต ์ •๋‹ต,์†”๋ฃจ์…˜) CHAPTER 18 ์ƒˆ๋กœ์šด C++ ํ‘œ์ค€๊ณผ์˜ ๋งŒ๋‚จ p.1540~ 1๋ฒˆ~4๋ฒˆ

2020. 10. 28. 15:53
728x90

1๋ฒˆ

#include<iostream>
#include <initializer_list>

template<typename T>
T average_list(std::initializer_list<T> il)
{
	T sum = 0;
	for (auto it=il.begin(); it!=il.end(); it++)
		sum += *it;
	return sum / il.size();
}


int main()
{
	using namespace std;

	auto q = average_list({ 15.4, 10.7, 9.0 });
	cout << q << endl;
	cout << average_list({ 20, 30, 19, 17, 45, 38 }) << endl;
	auto ad = average_list<double>({ 'A', 70, 65.33 });
	cout << ad << endl;

	return 0;

}

 

 

2๋ฒˆ

#include<iostream>
#include <string>
#include <utility>

class Cpmv
{
public:
	struct Info
	{
		std::string qcode;
		std::string zcode;
	};
private:
	Info* pi;
public:
	Cpmv();
	Cpmv(std::string q, std::string z);
	Cpmv(const Cpmv& cp);
	Cpmv(Cpmv&& mv);
	~Cpmv();
	Cpmv& operator=(const Cpmv& cp);
	Cpmv& operator=(Cpmv&& mv);
	Cpmv operator+(const Cpmv& obj) const;
	void Display() const;
};

Cpmv::Cpmv()
	: pi(nullptr)
{
}

Cpmv::Cpmv(std::string q, std::string z)
	: pi(new Info)
{
	pi->qcode = q;
	pi->zcode = z;
}

Cpmv::Cpmv(const Cpmv& cp)
{
	pi->qcode = cp.pi->qcode;
	pi->zcode = cp.pi->zcode;
}

Cpmv::Cpmv(Cpmv&& mv)
	:pi(mv.pi)
{
	std::cout << "์ด๋™ ์ƒ์„ฑ์ž ์ƒ์„ฑ && :\n";
	mv.pi = nullptr;
}

Cpmv::~Cpmv()
{
	if (pi) delete pi;
	pi = nullptr;
}

Cpmv& Cpmv::operator=(const Cpmv& cp)
{

	if (pi) delete pi;
	pi = cp.pi;
	return *this;
}

Cpmv& Cpmv::operator=(Cpmv&& mv)
{
	std::cout << "์ด๋™ ์ƒ์„ฑ์ž ์ƒ์„ฑ = :\n";
	pi = mv.pi;
	mv.pi = nullptr;
	return *this;
}

Cpmv Cpmv::operator+(const Cpmv& obj) const
{
	std::string qcode;
	std::string zcode;
	if (pi) {
		qcode += pi->qcode;
		zcode += pi->zcode;
	}
	if (obj.pi) {
		qcode += obj.pi->qcode;
		zcode += obj.pi->zcode;
	}
	Cpmv temp(qcode, zcode);
	return temp;
}

void Cpmv::Display() const
{
	std::cout << "qcode: " << pi->qcode << " \t"
		<< ", zcode: " << pi->zcode << '\n';
}


int main()
{
	Cpmv one("q1", "z1");
	std::cout << "one -> "; one.Display();

	Cpmv two("q2", "z2");
	std::cout << "two -> "; two.Display();

	Cpmv three(Cpmv("q3", "z3"));
	std::cout << "three -> "; three.Display();

	Cpmv four;
	four = one + two + three;
	std::cout << "four -> "; four.Display();
	return 0;
}

 

 

3๋ฒˆ

#include<iostream>
long double sum_values() { return 0; }

template<typename T,typename...Args>
long double sum_values(T value, Args...args)
{
	long double sum = 0;
	return value + sum_values(args...);
}

int main()
{
	long double test;
	test = sum_values(1.4, 2.5, 3.4, 'a');
	std::cout << test << '\n';
	return 0;
}

 

 

4๋ฒˆ

// functor.cpp -- ํŽ‘ํฌํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค
#include <iostream>
#include <list>
#include <iterator>
#include <algorithm>

int main()
{
    using std::list;
    using std::cout;
    using std::endl;

    auto outint = [](int n) {cout << n << " "; };


    int vals[10] = { 50, 100, 90, 180, 60, 210, 415, 88, 188, 201 };
    list<int> yadayada(vals, vals + 10); // range ์ƒ์„ฑ์ž
    list<int> etcetera(vals, vals + 10);

    // C++11์€ ๋‹ค์Œ์˜ ์ฝ”๋“œ๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค
    // list<int> yadayada = {50, 100, 90, 180, 60, 210, 415, 88, 188, 201};
    // list<int> etcetera {50, 100, 90, 180, 60, 210, 415, 88, 188, 201};

    cout << "์›๋ž˜์˜ ๋ฆฌ์ŠคํŠธ:\n";
    for_each(yadayada.begin(), yadayada.end(), outint);
    cout << endl;
    for_each(etcetera.begin(), etcetera.end(), outint);
    cout << endl;
    yadayada.remove_if([](int n) {return n > 100; });               // ์ด๋ฆ„์ด ์žˆ๋Š” ํ•จ์ˆ˜ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค
    etcetera.remove_if([](int n) {return n > 200; });   // ํ•จ์ˆ˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
    cout << "์ •๋น„๋œ ๋ฆฌ์ŠคํŠธ:\n";
    for_each(yadayada.begin(), yadayada.end(), outint);
    cout << endl;
    for_each(etcetera.begin(), etcetera.end(), outint);
    cout << endl;
    return 0;
}
728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    '๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค ์—ฐ์Šต๋ฌธ์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • (C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค 6ํŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์Šต ์ •๋‹ต,์†”๋ฃจ์…˜) CHAPTER 17 ์ž…๋ ฅ, ์ถœ๋ ฅ, ํŒŒ์ผ p.1458~ 1๋ฒˆ~7๋ฒˆ
    • (C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค 6ํŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์Šต ์ •๋‹ต,์†”๋ฃจ์…˜) CHAPTER 16 string ํด๋ž˜์Šค์™€ ํ‘œ์ค€ ํ…œํ”Œ๋ฆฟ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ p.1342~ 1๋ฒˆ~10๋ฒˆ
    • (C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค 6ํŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์Šต ์ •๋‹ต,์†”๋ฃจ์…˜) CHAPTER 15 ํ”„๋ Œ๋“œ,์˜ˆ์™ธ,๊ธฐํƒ€ ์‚ฌํ•ญ p.1206~ 1๋ฒˆ~4๋ฒˆ
    • (C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค 6ํŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์Šต ์ •๋‹ต,์†”๋ฃจ์…˜) CHAPTER 14 C++ ์ฝ”๋“œ์˜ ์žฌํ™œ์šฉ p.1103~ 1๋ฒˆ~5๋ฒˆ
    hugDog
    hugDog
    ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต๋ถ€ ์ค‘์ธ ํ•™์ƒ์ž…๋‹ˆ๋‹ค!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”