DEV Community

海前 王
海前 王

Posted on

c++11

·

#define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING 
#include<iostream>
#include <array>
#include<string>
#include <functional>
using namespace std;
void fun(array<int,10> &a)
{
    int i = 0;
    for (auto element : a)
    {
        a[i++] += 1;
        cout << element;
    }
}

int main()
{

    array<int,10> a{1,2,3};
    a.front() = 4;
    a.operator[](1) = 9;
    fun(std::ref(a));
    for (auto a1 : a)
    {
        cout << a1;
    }
    string f = "hello";
    //for(auto i:f)
    //{
    //  cout << i;
    //}
    for (char value : f)
    {
        value += 1;
        cout << value;
    }
//  logical_or<>();
    logical_or<int> result;

    int ch[10];
    try
    {
        for (int& ch1 : ch)
        {
            cin >> ch1;
        }
    }
    catch (const exception& e)
    {
        cout << e.what();
    }   //}
    for (int ch1 : ch)
    {
        cout << ch1;
    }


}
int mian()
{

    return 0;
}


// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
//#include <type_traits>
//
//template <class T>
//struct Number { T n; };
//
//template <class T, class U>
//Number<typename std::common_type<T, U>::type> operator+(const Number<T>& lhs,
//    const Number<U>& rhs)
//{
//    return { lhs.n + rhs.n };
//}
//
//int main()
//{
//    Number<int> i1 = { 1 }, i2 = { 2 };
//    Number<double> d1 = { 2.3 }, d2 = { 3.5 };
//    std::cout << "i1i2: " << (i1 + i2).n << "\ni1d2: " << (i1 + d2).n << '\n'
//        << "d1i2: " << (d1 + i2).n << "\nd1d2: " << (d1 + d2).n << '\n';
//}
// Compile using cl.exe /EHsc
// common_type sample
#include <iostream>
#include <type_traits>

struct Base {};
struct Derived : Base {};

int main()
{
    typedef std::common_type<unsigned char, short, int>::type NumericType;
    typedef std::common_type<float, double>::type FloatType;
    typedef std::common_type<const int, volatile int>::type ModifiedIntType;
    typedef std::common_type<Base, Derived>::type ClassType;

    std::cout << std::boolalpha;
    std::cout << "Test for typedefs of common_type int" << std::endl;
    std::cout << "NumericType: " << std::is_same<int, NumericType>::value << std::endl;
    std::cout << "FloatType: " << std::is_same<int, FloatType>::value << std::endl;
    std::cout << "ModifiedIntType: " << std::is_same<int, ModifiedIntType>::value << std::endl;
    std::cout << "ClassType: " << std::is_same<int, ClassType>::value << std::endl;
    std::cout << "---------------------------" << std::endl;
    std::cout << "Test for typedefs of common_type double" << std::endl;
    std::cout << "NumericType: " << std::is_same<double, NumericType>::value << std::endl;
    std::cout << "FloatType: " << std::is_same<double, FloatType>::value << std::endl;
    std::cout << "ModifiedIntType: " << std::is_same<double, ModifiedIntType>::value << std::endl;
    std::cout << "ClassType: " << std::is_same<double, ClassType>::value << std::endl;
    std::cout << "---------------------------" << std::endl;
    std::cout << "Test for typedefs of common_type Base" << std::endl;
    std::cout << "NumericType: " << std::is_same<Base, NumericType>::value << std::endl;
    std::cout << "FloatType: " << std::is_same<Base, FloatType>::value << std::endl;
    std::cout << "ModifiedIntType: " << std::is_same<Base, ModifiedIntType>::value << std::endl;
    std::cout << "ClassType: " << std::is_same<Base, ClassType>::value << std::endl;

    return 0;
}

//// ConsoleApplication2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
////
//#include <functional>
//#include <vector>
//#include <iostream>
//template<typename T>
//void foo(T val)
//{
//
//std:: cout << val;
//
//}
//
//
//
//
//
//int main()
//{
//  void fun(int x, int y);
//  std::vector<std::function<void(int, int)>> ta;
//  ta.push_back(fun);
//  ta.push_back([](int x, int y)
//      {
//          std::cout << x;
//      });
//  for(std::function<void(int,int)> f:ta)
//  {
//      f(33, 45);
//  }
//  int x{3};
//  foo(std::ref(x));
//}

#include <iostream>
#include <functional>
#include <vector>
#include <algorithm>
void fun(int x, int y)
{
    std::cout << "fun: " << x << ", " << y << std::endl;
}
bool int_ptr_less(int *a,int *b)
{
    return *a  < *b;

}
class c
{
public:
    void mfunc(int x, int y) const
    {
        std::cout << "fun: " << x << ", " << y << std::endl;
    }
};

auto divide(int a, int b) -> decltype((double)a/b) {
    if (b != 0) {
        return static_cast<double>(a) / b;
    }
    else {
        throw std::invalid_argument("Division by zero");
    }
}

int main()
{
    std::vector<std::function<void(int, int)>> ta;
    ta.push_back(fun);
    ta.push_back([](int x, int y)
    {
        std::cout << "Lambda: " << x << y << std::endl;
    });

    for (std::function<void(int, int)> f : ta)
    {
        f(33, 45);
    }

    std::function<void(const c&, int, int)> mf;
    mf = &c::mfunc;
    mf(c(), 34, 34);


    int x = 17;
    int y = 42;
    int z = 33;
    int* px = &x;
    int* py = &y;
    int* pz = &z;
    int* pmax = std::max(px, py, int_ptr_less);


    std::pair<int*, int*> ex = std::minmax({ px,py,pz }, int_ptr_less);//first 17 second 42


    auto ex1 = std::minmax({ px,py,pz }, [](int*a,int*b)
    {
            return *a > *b;
    });

    int bz = 10;
    decltype(bz) fz = 10;
    std::cout << fz;
    auto i=divide(32, 4);
   return 0;
}
// ConsoleApplication3.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>  
#include <thread>  
#include <atomic>  
#include <chrono>  

std::atomic<bool> ready(false); // 初始化为 false 的原子布尔变量  

void workerThread() {
    std::this_thread::sleep_for(std::chrono::seconds(1));
    ready.store(true); // 设置 ready 为 true,通知其他线程  
    std::cout << "Worker thread finished its work.\n";
}

int main() {
    std::thread t(workerThread);
    t.detach();
    while (!ready.load()) {
        std::cout << "Waiting for the worker thread to finish...\n";
        std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 等待 worker 线程完成  
    }

    std::cout << "Main thread detected that the work is ready.\n";
    //t.join();
    return 0;
}
// ConsoleApplication24.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

template<typename T>
void foo(const T& val)
{

    if(std::is_pointer<T>::value)
    {

        std::cout << "pointer";
    }
    else
    {
        std::cout << "value";
    }

}
template <typename T>
void foo_impl(const  T& val, std::true_type)
{
    std::cout << *val << std::endl;
}

template <typename T>
void foo_impl(const T& val, std::false_type)
{
    std::cout << val << std::endl;
}

template <typename T>
void foo_(const T& val)
{
    foo_impl(val, std::is_pointer<T>());
}
template <>
void foo_impl(const int& val, std::false_type)
{
    std::cout << "not int" << std::endl;
}

template <>
void foo_impl(const  int& val, std::true_type)
{
    std::cout <<val << std::endl;
}
template <typename T>
void foo1_(const T& val)
{
    foo_impl(val, std::is_integral<T>());
}
//
//template<typename T1,typename T2>
//struct commmon_type<T1,T2>
//{
//    typedef decltype(true ? std::declval<T1>() : std::declval<T2>()) type;
//};
template<typename T1,typename T2>
typename std::common_type<T1, T2>::type min(const T1& x, const T2& y);

int main()
{
    foo<int>(2);
    std::cout << "\n";
    const char* p = "hello";
    foo<const char*>(p);
    std::cout << "\n";

    foo_<const char*>(p);
    std::cout << "\n";
    foo1_<int>(2);
    std::cout << "Hello World!\n";
    foo1_(2.4);
   // commmon_type<std::string,const char*> f;
    long f = 9;
    //min(2, f);
   // min<int, long>(2, 8);
    const char* s = "hello";
    std::string str=s;
    //const char* ss = str;
    std::cout << str;
}
// ConsoleApplication4.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iterator>
#include<algorithm>
#include <functional>
#include<string>
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
inline void PRINT_ELMENT(const T& coll)
{
    for(const auto elem:coll)
    {
        cout << elem<<"\n";
    }
}
void fun(int a)
{
    cout << a;

}

int main()
{
    vector<string> cotainer;

    ////input still you are  enter ctrl+c
    //copy(istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(cotainer));
    //sort(cotainer.begin(), cotainer.end());
    //unique_copy(cotainer.begin(), cotainer.end(), ostream_iterator<string>(cout, ","));
    int i = 90;
    bind(fun, 1)();
    bind(fun, ref(i))();
    vector<int> f{ 1,2,3,4,5 };

    iter_swap(f.begin(), prev(f.end()));
    for(auto i:f)
    {
        cout << i;
    }

}


#include <iostream>                // std::cout

#include <thread>                // std::thread

#include <mutex>                // std::mutex, std::unique_lock

#include <condition_variable>    // std::condition_variable



std::mutex mtx; // 全局互斥锁.

std::condition_variable cv; // 全局条件变量.

bool ready = false; // 全局标志位.



void do_print_id(int id)

{

    std::unique_lock <std::mutex> lck(mtx);

    while (!ready) // 如果标志位不为 true, 则等待...

        cv.wait(lck); // 当前线程被阻塞, 当全局标志位变为 true 之后,

    // 线程被唤醒, 继续往下执行打印线程编号id.

    std::cout << "thread " << id << '\n';

}



void go()

{

    std::unique_lock <std::mutex> lck(mtx);

    ready = true; // 设置全局标志位为 true.

    cv.notify_all(); // 唤醒所有线程.

}



int main()

{

    std::thread threads[10];

    // spawn 10 threads:

    for (int i = 0; i < 10; ++i)

        threads[i] = std::thread(do_print_id, i);



    std::cout << "10 threads ready to race...\n";

    go(); // go!



    for (auto& th : threads)

        th.join();



    return 0;

}

// ConsoleApplication25.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <future>
#include <iostream>
#include <random>
#include <thread>
using namespace std;
int dosomething(char c)
{
    default_random_engine dre(c);
    uniform_int_distribution<int> id(10, 1000);
    for(int i=0;i<10;++i)
    {
        this_thread::sleep_for(chrono::milliseconds(id(dre)));
        cout.put(c).flush();
    }
    return c;
}
int fun1()
{
    return dosomething('-');
}
int fun2()
{
    return dosomething('+');
}
int main()
{
    std::cout << "Hello World!\n";
    std::future<int> result1(std::async(fun1));
    int result2 = fun2();
    int result = result1.get() + result2;
   // cout <<( result1 + result2);
    cout << result;
}


Enter fullscreen mode Exit fullscreen mode

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay