小编Mar*_*kus的帖子

使用{a,b,c}作为参数或{a,b,c}实际执行的构造函数

我知道,我可以像这样初始化数据.

int array[3] = { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)

甚至

int array[2][2] = { {1, 2}, {3, 4} };
Run Code Online (Sandbox Code Playgroud)

我也可以这样做 std::vector

std::vector<int> A = { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)

假设我想写自己的课程:

class my_class
{
     std::vector< int > A;
     public:
     //pseudo code
           my_class(*x) { store x in A;} //with x={ {1, 2}, {3, 4} }
     // do something
};
Run Code Online (Sandbox Code Playgroud)

是否可以编写这样的构造函数,它是如何可能的?这是什么声明

{{1, 2}, {3, 4}} 实际上在做.

我总是发现,你可以用这种方式初始化数据,但绝不是它正在做的事情.

c++ constructor class c++11 stdinitializerlist

6
推荐指数
1
解决办法
208
查看次数

有没有开源的离线翻译工具

我正在寻找离线的开源翻译器/API。译文不一定好,只要能分析关键词就行。

我正在编写一个火狐插件。该插件计算网站是垃圾的可能性。它的工作原理类似于垃圾邮件过滤器,通过计算“邪恶”字词。它适用于英语,但我是德国人,德语对计算机来说更难。我的想法是通过将语言翻译成英文并分析英文文本来“简化”语言。有谷歌翻译 API,但现在你必须为此付费。我知道还有其他程序可以翻译网站:

/sf/ask/430616791/

他们都有一个问题。您将网站的 html 代码发送到服务器,服务器为您翻译文本并将其发回。这会增加流量并减慢速度。服务器的所有者也不会喜欢你。

这就是我寻找离线开源翻译器的原因。译文不一定好,只要能分析关键词就行。仅仅使用字典并逐字翻译是行不通的。

示例:“Ich Bringe Dich um”的意思是“我杀了你”。如果你一个字一个字地翻译它,你会得到:“我带你到处走。” 这个翻译听起来很奇怪,但并不邪恶。问题是“带来……嗯”只是一个词。

由于诸如此类的令人讨厌的问题,我想避免使用德语(还有更多问题:23 种不同的复数规则等)。我认为发明自动翻译的程序员已经面临并解决了这些问题。

api offline translation

5
推荐指数
1
解决办法
1806
查看次数

运算符重载C++,(+, - ,*,/等)是否有比复制,替换和粘贴更聪明的方法?

我正在编写一种矩阵库,所以我operator +使用运算符重载给了我的矩阵a .它看起来像这样.

friend matrix<T, size_x, size_y>  operator + (const matrix<T, size_x, size_y> & Input_1, const matrix<T, size_x, size_y> & Input_2){
    matrix<T, size_x, size_y> Output;
        for (int i=0; i<size_x; i++){
            for (int j=0; j<size_y; j++){
                Output.value[i][j]=Input_1.value[i][j]+Input_2.value[i][j];
            }
        }
    return Output;
}       
Run Code Online (Sandbox Code Playgroud)

到目前为止,正如我测试它,它的工作原理.现在我也想添加 - ,/,*运算符,它们都是一样的.当然我可以使用复制,替换和粘贴.但这对可读性和可维护性不利.是否有一个更智能的解决方案,也许是一个概念,因为我不知道谷歌的概念名称吗?我刚刚发现,如何使单个运算符超载.

c++ operator-overloading operators

4
推荐指数
1
解决办法
192
查看次数