在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/ C++問(wèn)答
溫衫 回答

兩種情況:
1,同步函數(shù)

這個(gè)簡(jiǎn)單,順序執(zhí)行就可以了

2,異步函數(shù)(我猜你是這種情況)async await可以解決

async function a() {
    return Promise.resolve("a");
}
async function b() {
    return Promise.resolve("b");
}
async function c() {
    await a();
    await b();
    console.log('執(zhí)行c')
}
c();
笑忘初 回答

你把這個(gè)看成一個(gè)數(shù)學(xué)問(wèn)題
階乘是什么?
f(1) = 1
f(n) = n * f(n-1)
所以就是

def f(n):
  if n <= 0:
    return 0
  if n == 1:
    return 1
  return n * f(n-1)
孤客 回答

tox, github上有N多個(gè)不同平臺(tái)的客戶(hù)端, 支持實(shí)時(shí)音視頻

逗婦惱 回答

example 3 是擴(kuò)展性比較好的寫(xiě)法。說(shuō)擴(kuò)展性好是指在增加新的 Data 類(lèi)型時(shí)不要改動(dòng)任何代碼。第二種模板的方式要求 Data 類(lèi)型必須具有一致的結(jié)構(gòu)才可以,太脆弱了。
example 3 的問(wèn)題是對(duì)使用者不友好,每次調(diào)用都要寫(xiě) lambda, 如果有大量的調(diào)用就顯得代價(jià)過(guò)高了??梢酝ㄟ^(guò)提取輔助函數(shù)的方式解決(或者寫(xiě)成 User 類(lèi)的構(gòu)造函數(shù)),每增加一個(gè) Data 類(lèi)型就對(duì)應(yīng)增加這樣一個(gè)輔助函數(shù)(或者構(gòu)造函數(shù))
當(dāng)然,以上只適合示例代碼中這種簡(jiǎn)單邏輯。實(shí)際項(xiàng)目中可能復(fù)雜的多,比如要訪(fǎng)問(wèn)十幾種 Data 類(lèi)型中的十幾個(gè)成員,這時(shí)候就有必要加一個(gè)抽象層了,所有的 User 類(lèi)從一個(gè)公共的接口繼承下來(lái),每種或者每幾種 Data 類(lèi)型對(duì)應(yīng)一種實(shí)現(xiàn)?;蛘甙殉橄蠼涌诜旁趦?nèi)部,User 類(lèi)作為對(duì)該抽象接口調(diào)用的一個(gè)包裝類(lèi),這種方式的好處是抽象層在內(nèi)部可以隨時(shí)修改。
具體怎么做只能具體問(wèn)題具體分析了。

青黛色 回答

書(shū)上也許有錯(cuò)誤的地方。你理解也有不準(zhǔn)確的地方。其實(shí)你都可以自己實(shí)驗(yàn)得到。

tell單獨(dú)用,指的是整個(gè)數(shù)組。但放入一些表達(dá)式中時(shí),會(huì)被隱式轉(zhuǎn)換為第一個(gè)元素的指針。

cout << sizeof(tell) << endl; // 輸出20,即整個(gè)數(shù)組的大小
cout << sizeof(tell + 1) << endl; // 輸出4或8,即一個(gè)指針的大?。?2位或64位的指針大小不同)
cout << tell << endl; // 輸出一個(gè)地址
cout << tell + 1 << endl; // 比上一個(gè)地址大2,即1個(gè)short的大小

&tell沒(méi)有懸念,指的是指向整個(gè)數(shù)組的指針。

cout << &tell << endl; // 輸出一個(gè)地址
cout << &tell + 2 << endl; // 比上一個(gè)地址大40

至于short (*)[20],沒(méi)見(jiàn)過(guò)這樣的寫(xiě)法。

柒槿年 回答
int fac(int &&a, int &&b) {
  if (b == 0)
    return a > 0 ? fac(a-1, 0) * a : 1;
  return fac(a+b, 0);
}

int fac(int &&a, int &&b) {
  if (a > 0)
    return fac(a-1, b+0) * (a+b);
  else if (b > 0)
    return fac(a+0, b-1) * (a+b);
  else
    return 1;
}
維她命 回答

析構(gòu)函數(shù)忘定義了

玩控 回答

其實(shí)這個(gè)問(wèn)題,很簡(jiǎn)單,分析一下就知道了。分析如下:

var str = "我是/@小王@\\和/@小李@\\的好朋友"

你要轉(zhuǎn)成

  var arr = [{"text": "我是"}, {"name": 小王"}, {"text": "和"}, {"name": "小李"}, {"text": "的好朋友"}]

以我看來(lái)就是,通過(guò)/@和@\把字符串分割,并且以/@結(jié)尾的放到text屬性中,以@\結(jié)尾的放到name中,并且保持原有順序。
既然是有兩個(gè)分割字符,那么我們就分割兩次。我簡(jiǎn)單寫(xiě)了一下,但是沒(méi)有做太多檢驗(yàn)和判斷。回頭你對(duì)參數(shù)做下校驗(yàn)。

我的代碼如下:

var str = "我是/@小王@\\和/@小李@\\的好朋友";
    var strs = str.split("/@");
    var arr = new Array();
    for (var i = 0 ;i < strs.length;i++)
    {
        if(strs[i].indexOf('@\\') != -1)
        {
            var temps = strs[i].split('@\\');
            for(var j=0;j<temps.length;j++)
            {
                if(j == temps.length -1)
                {
                    var text =
                    {
                        text:temps[j]
                    }
                }else
                {
                    var name =
                    {
                        name:temps[j]
                    }
                }
            }
        }else
        {
            var text =
            {
                text:strs[i]
            }
        }
        if(name != null && '' != name && 'undifined' != name)
        {
            arr.push(name);
        }
        if(text != null && '' != text && 'undifined' != text)
        {
            arr.push(text);
        }
    }
    console.log(arr);
那么,最后控制臺(tái)輸入如下:

圖片描述

如果沒(méi)問(wèn)題,請(qǐng)采納,謝謝。

陌南塵 回答

補(bǔ)充一個(gè)使用循環(huán)的實(shí)現(xiàn)
現(xiàn):保證數(shù)組的序列是有序的連續(xù)的

$data = [
    ['AAA', 'aaa', 'aAa'],
    ['BBB', 'bbb', 'bBb'],
    ['CCC', 'ccc', 'cCc'],
];

$result = [];
foreach (array_keys($data) as $k) {
    $tmp = [];
    if (empty($result)) {
        $result = $data[$k];
    } else {
        foreach ($result as $item1) {
            foreach ($data[$k] as $item2) {
                $tmp[] = $item1 . '-' . $item2;
            }
        }
        $result = $tmp;
    }
}
var_dump($result);
凝雅 回答

MDN的new運(yùn)算解釋

如果構(gòu)造函數(shù)返回了一個(gè)“對(duì)象”,那么這個(gè)對(duì)象會(huì)取代整個(gè)new出來(lái)的結(jié)果。

var aa = new a(name);
也就是說(shuō) aa 就是{say1:say}這個(gè)對(duì)象了,他是不具有say2的!

懶豬 回答

了解一下https://wkhtmltopdf.org/

張老師寫(xiě)過(guò)文章:http://www.cnblogs.com/shanyo...

C#版本的話(huà),我用過(guò)WkHtmlToXSharp 和[WkHtmlToXDotNet](https://github.com/TimothyKho...
前者用的人比較多,后者一般般.
注意一點(diǎn),不要在IIS中使用WkHtmlToXSharp方案,有內(nèi)存泄漏風(fēng)險(xiǎn),在桌面環(huán)境就隨便玩了;
直接調(diào)用wkhtmltopdf.exe的話(huà)就無(wú)所謂了.

嘟尛嘴 回答
  1. 你nm命令看到的那些符號(hào)的“U”表示未定義的,你可以看到它們前面沒(méi)有內(nèi)存地址信息,這些符號(hào)是定義在你引入的mxml庫(kù)中的。

  2. 你是在生成可執(zhí)行程序main的失敗報(bào)錯(cuò)的吧,如果是在編譯的時(shí)候再加上-lmxml選項(xiàng),并使用-L選項(xiàng)指定mxml庫(kù)所在的目錄。

  3. 運(yùn)行時(shí)可能會(huì)遇到提示找不到libmxml.so**庫(kù)的錯(cuò)誤提示,可以把libmxml.so**庫(kù)發(fā)布到/usr/lib64目錄下,或者把libmxml.so**所在目錄配置到/etc/ld.so.conf中,然后執(zhí)行l(wèi)dconfig即可。

淺淺 回答

*.cpp文件沒(méi)有加入CMakeLists.txt中, 檢查一下這個(gè)文件吧.

扯不斷 回答

@felix 老大已經(jīng)完全解答了OP你的問(wèn)題, 窩稍微做點(diǎn)微不足道的補(bǔ)充:

  1. 將其聲明為類(lèi)模板的友元會(huì)破壞類(lèi)的封裝性, 比如X<int>的友元函數(shù)foo此時(shí)會(huì)對(duì)所有X<T>可見(jiàn). 那么就等于X<int>間接不合理的獲取了所有X<T>的信息(比如其private member). 所以不建議使用, 比如下段代碼可以過(guò)編譯.
#include<iostream>
using namespace std;
template<typename T>
class A
{
private:
    T x;
    void setter(T y)
    {
        x = y;
    }
public:
    explicit A(T a) : x(a) {}
    template<typename U>
    friend void foo(A<U> a);
};
A<int> x(7);
template<typename U>
void foo(A<U> a)
{
    x.x = 2;
}
int main()
{
    A<int> a(7);
    A<float> b(1.1);
    foo(b);
}
  1. 還有第三種方式, 是使用前置聲明的方法, 詳見(jiàn)下面代碼.
  2. 首先靜態(tài)成員變量count需要在類(lèi)外定義從c++1z開(kāi)始可能需要改成首先non-constexpr的靜態(tài)成員變量count需要在類(lèi)外定義。詳見(jiàn)http://eel.is/c++draft/depr.s... . demo可以在寫(xiě)個(gè)odr-use函數(shù)試出.
  3. 題主你的const出問(wèn)題了.
#include<iostream>
using namespace std;

template<class T, int n>
class Array;

template<class T, int n>
 istream & operator>> (istream & in, Array<T,n>& a);


template<class T,int n>
ostream & operator << (ostream & out,const Array<T,n>& a);

template<class T, int n>
class Array
{
private:
    T p[n];
    static int count;
public:
    friend istream & operator>> <> (istream & in, Array<T,n>& a);
    friend ostream & operator << <> (ostream & out,const Array<T,n>& a);
    int getSize()
    {
        return n;
    }
    static int getArrayCount()
    {
        return count;
    }
};
template<class T,int n>
istream & operator >> (istream & in, Array<T,n>& a)
{
    for(int i=0;i<n;i++)
    {
        in>>a.p[i];
    }
    a.count++;
    return in;
}
template<class T,int n>
ostream & operator << (ostream & out,const Array<T,n>& a)
{
    for(int i=0;i<n;i++)
    {
        out<<a.p[i]<<" ";
    }
    return out;
}

template<class T, int n>
int Array<T, n>::count = 0;


int main()
{
    Array< int, 5 > intArray1;
    cin >> intArray1;
    Array< int, 5 > intArray2;
    cin >> intArray2;
    Array< float, 5 > floatArray;
    cin >> floatArray;
    cout << "\nIntArray1 contains " << intArray1.getSize() << " Elements.\n";
    cout << "The values in intArray are:\n";
    cout << intArray1;
    cout << "\nIntArray2 contains " << intArray2.getSize() << " Elements.\n";
    cout << "The values in intArray are:\n";
    cout << intArray2;
    cout << "\nDoubleArray contains " << floatArray.getSize() << " Elements.\n";
    cout << "The values in the doubleArray are:\n";
    cout << floatArray;
    cout << "\nThere are " << Array<int,5>::getArrayCount() << " Array<int,5> objects.\n";
    cout << "\nThere are " << Array<float,5>::getArrayCount() << " Array<float,5> objects.\n";
    return 0;
}
夏木 回答

如果確定是計(jì)算密集確實(shí)不適合使用python中的多線(xiàn)程,但是是可以考慮使用多進(jìn)程的。你不需要通過(guò)自己創(chuàng)建一個(gè)queue來(lái)進(jìn)行內(nèi)部分流,即使需要一個(gè)Queue, 也是需要通過(guò)給Queue設(shè)置大小來(lái)限制Queue的流量。

以rabbitmq為例, 請(qǐng)看https://www.rabbitmq.com/tuto...

在rabbitmq的官方例子中,是使用pika做為rabbitmq的客戶(hù)端的, 消息模型應(yīng)該是和你的是一致的,稍微修改一下官方的work.py例子,通過(guò)建立多個(gè)rabbitmq客戶(hù)端來(lái)消費(fèi)消息:

#!/usr/bin/env python
import pika
import time
from concurrent.futures import ProcessPoolExecutor
# from concurrent.futures import ThreadPoolExecutor


connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))

channels = [
    (1, connection.channel(1)),
    (2, connection.channel(2)),
    (3, connection.channel(3)),
]

def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)
    time.sleep(0.2)
    print(" [x] Done: %s" % ch.channel_number)
    ch.basic_ack(delivery_tag=method.delivery_tag)


for _, channel in channels:
    channel.queue_declare(queue='task_queue', durable=True)
    channel.basic_qos(prefetch_count=1)
    channel.basic_consume(callback, queue='task_queue')


def start_consumer(channel_name):
    dict(channels).get(channel_name).start_consuming()


print(' [*] Waiting for messages. To exit press CTRL+C')

with ProcessPoolExecutor(max_workers=len(channels)) as e:
    e.map(start_consumer, range(1, 4))

# with ThreadPoolExecutor(max_workers=len(channels)) as e:
#     e.map(start_consumer, range(1, 4))

彈性的創(chuàng)建worker我覺(jué)的從程序(worker.py)內(nèi)部去實(shí)現(xiàn)是比較困難的,從程序外部來(lái)看更容易實(shí)現(xiàn), 首先監(jiān)控流量, 流量增大可以通過(guò)啟動(dòng)更多的worker.py腳本來(lái)加快消息的消費(fèi); 反之, 減少worker.py啟動(dòng)的數(shù)量。

離殤 回答

很簡(jiǎn)單的問(wèn)題,npm這個(gè)報(bào)錯(cuò)我也是服了,就是flash這個(gè)用戶(hù)名被注冊(cè)過(guò)了,換一個(gè)就好了,我解決了在這里記錄一下,怕以后忘了...

青裙 回答

設(shè)置心跳檢測(cè)時(shí)間試試
array(

'heartbeat_idle_time' => 600,
'heartbeat_check_interval' => 60,

);
https://wiki.swoole.com/wiki/...

心上人 回答

借花獻(xiàn)佛
https://blog.csdn.net/u010003...
另外MongoDB 4.0已經(jīng)開(kāi)始支持事務(wù)了

只有0和-1才能這樣初始化吧

心上人 回答

后面你維護(hù)的時(shí)候,原則上只需要保證那些暴露出去的方法的兼容性即可。