小编Sla*_*zer的帖子

使用std :: accumulate计算向量的一部分的总和

有这个向量

vector<int> v{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Run Code Online (Sandbox Code Playgroud)

如何使用累加函数计算其前半部分(即15)的总和

我可以使用只有迭代器(而不是数字索引)的for循环吗?

c++ vector accumulate

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

ReferenceError:未定义CKEDITOR

我正在尝试使用CKeditor,但是当我尝试教程中的示例并且浏览器中只显示一个texbox 时,会出现以下错误(在JS控制台中).

ReferenceError:CKEDITOR未定义[Break On此错误]
CKEDITOR.replace('editor1');/xampp /(第13行)

请注意,当我在我的虚拟主机上尝试时,该示例有效.可以从浏览器访问文件ckeditor.js.

javascript ckeditor

5
推荐指数
2
解决办法
4万
查看次数

if 语句中的 vector&lt;int&gt;::iterator 无法编译

我有两个具有相同功能的代码片段,但是一个可以编译,另一个不能。为什么?

这个编译。

vector<int>::iterator it;
if ((it=find(v.begin(),v.end(),2))!=v.end()){
}
Run Code Online (Sandbox Code Playgroud)

这个没有。

if ((vector<int>::iterator it=find(v.begin(),v.end(),2))!=v.end()){
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误。

main.cpp: In function ‘int main()’:
main.cpp:32:28: error: expected primary-expression before ‘it’
main.cpp:32:28: error: expected ‘)’ before ‘it’
main.cpp:44:5: error: expected ‘)’ before ‘return’
Run Code Online (Sandbox Code Playgroud)

PS 可以随意编辑标题 - 我找不到任何描述性的内容。

c++ iterator vector

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

在使用它的类的构造函数中初始化std :: array的大小

是否可以使用std::array<class T, std::size_t N>作为类的私有属性,但在类的构造函数初始化它的大小

class Router{
    std::array<Port,???> ports; //I dont know how much ports do will this have
public:
    Switch(int numberOfPortsOnRouter){
        ports=std::array<Port,numberOfPortsOnRouter> ports; //now I know it has "numberOfPortsOnRouter" ports, but howto tell the "ports" variable?
    }
}
Run Code Online (Sandbox Code Playgroud)

我可能会使用指针,但没有它可以这样做吗?

c++ arrays templates std c++11

4
推荐指数
2
解决办法
2216
查看次数

重载postfix运算符++

我重载了operator ++的前缀版本.如果重载函数不是我的类*的成员,我怎么能重载postfix版本?

#include <iostream>
using namespace std;

class Number{
    int number;
public:
    Number(int inNr):number(inNr){}
    friend void operator++(Number& fst);
};

void operator++(Number& fst){
    fst.number=fst.number+1;
}

int main(){
    Number nr1(1);
    ++nr1;
    //nr1++; error: no 'operator++(int)' declared for postfix '++' 
}
Run Code Online (Sandbox Code Playgroud)

*我理解如果它是类的成员,我可以使用dummy int参数来区分它们.

c++ overloading operator-keyword

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

运算符<<函数的返回值

我知道我应该从"operator <<"返回"ostream&",以便能够像这样"链接"运算符

cout<<a<<b<<c;
Run Code Online (Sandbox Code Playgroud)

但是,在下面的代码中,我没有返回"ostream&",并且仍然可以进行链接.为什么?

#include <iostream>
using namespace std;

class CComplexNumber{
    float m_realPart;
    float m_imagPart;
public:
    CComplexNumber(float r,float i):m_realPart(r),m_imagPart(i){}

    friend ostream& operator<<(ostream& lhs,CComplexNumber rhs){
        lhs<<"["<<rhs.m_realPart<<","<<rhs.m_imagPart<<"]"<<endl;
        //MISSING RETURN STATEMENT!
    }
};

int main() {
    CComplexNumber a(1,2);
    CComplexNumber b(3,4);
    CComplexNumber c(5,6);

    cout<<a<<b<<c;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT

[1,2]
[3,4]
[5,6]
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
1
解决办法
123
查看次数

new int [M] [N]的类型是什么?

根据typeid(array).name()它是PAN_i在G ++ 4.8.4.我知道P意味着指针和i意味着int,但是什么类型是什么A,为什么只有第二个维度N- 而不是第一个 - M.

我应该输入什么而不是自动输入auto array = new int[M][N]

是否有分配的方式arrayint**

另一个问题是M和N必须是编译时常量.如果他们不是,我想我唯一的选择是动态C++ 03 2D阵列.

c++ arrays dynamic multidimensional-array c++11

3
推荐指数
1
解决办法
560
查看次数

Docker 容器没有给我一个 shell

我正在尝试使用此命令在Docker Hub上的 Docker 容器moul/phoronix-test-suite 中获取一个 shell

docker run -t -i moul/phoronix-test-suite /bin/bash
Run Code Online (Sandbox Code Playgroud)

但是在执行命令(二进制文件)之后,容器停止并且我没有进入它。

[slazer@localhost ~]$ docker ps -a
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS                     PORTS               NAMES
0993189463e6        moul/phoronix-test-suite   "phoronix-test-suite "   7 seconds ago       Exited (0) 3 seconds ago                       kickass_shockley
Run Code Online (Sandbox Code Playgroud)

它是一个ubuntu:trusty容器。如何将 shell 放入其中,以便我可以向命令 phoronix-test-suite 发送参数?

linux bash containers docker dockerfile

3
推荐指数
1
解决办法
1032
查看次数

如何在没有范围的情况下使用枚举类

我需要在一个代码块中多次使用enum类的枚举器,并且我想避免使用C ++ 03中的经典枚举。

enum class Color {RED, GREEN};
{
    Color::RED //this works
    RED;       //how do I make this work (only for this block)?
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用

using namespace Color;
Run Code Online (Sandbox Code Playgroud)

但由于Color不是名称空间,因此它显然不起作用。

c++ enums class c++11

2
推荐指数
1
解决办法
1521
查看次数

operator <<(ostream&,const BigUnsigned <I>&)必须只接受一个参数

我试图分离模板化类的模板化成员函数的声明和定义,但最终出现以下错误和警告.

template <typename I>
class BigUnsigned{
    const size_t cell_size=sizeof(I);
    std::vector<I> _integers;
public:
    BigUnsigned();
    BigUnsigned(I);
    friend std::ostream& operator<<(std::ostream& out, const BigUnsigned& bu);
};

std::ostream& operator<<(std::ostream& out, const BigUnsigned& bu){
    for (auto integer : bu._integers){
        out<<integer<<std::endl;
    }
    return out;
}
Run Code Online (Sandbox Code Playgroud)

../hw06/bigunsigned.h:13:77:警告:朋友声明'std :: ostream&operator <<(std :: ostream&,const BigUnsigned&)'声明一个非模板函数[-Wnon-template-friend]的朋友std :: ostream&operator <<(std :: ostream&out,const BigUnsigned&bu); ^ ../hw06/bigunsigned.h:13:77:注意:(如果这不是你想要的,请确保已经声明了函数模板,并在函数名后添加<>)../hw06/bigunsigned .h:16:51:错误:无法使用模板名称'BigUnsigned'而没有参数列表std :: ostream&operator <<(std :: ostream&out,const BigUnsigned&bu){^ ../hw06/bigunsigned.h :在函数'std :: ostream&operator <<(std :: ostream&,const int&)':../ hw06/bigunsigned.h:17:28:error:请求'bu'中的成员'_integers',这是非类型'const int'的表达式(auto integer:bu._integers){^

当我加入这样的声明和定义时,一切都很好.

template <typename I>
class BigUnsigned{
    const size_t cell_size=sizeof(I); …
Run Code Online (Sandbox Code Playgroud)

c++ templates operator-overloading c++11

2
推荐指数
1
解决办法
1665
查看次数