小编Fil*_*efp的帖子

非静态数据成员初始化器/调用std :: vector的构造函数

码:

class A {
  std::vector<int> x = {2,3};                 // x[0] = 2 and x[1] = 3
  std::vector<int> y = std::vector<int>(2,3); // x[0] = 3 and x[1] = 3 Too verbose!!  
};
Run Code Online (Sandbox Code Playgroud)

有没有办法可以调用std::vector<int>只使用大括号初始化程序的构造函数,或者至少是更短的版本,它会产生相同的效果?

我不想重复std::vector<int>.

c++ c++11

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

如何检查c ++ stl向量中存在的值并将函数应用于向量的每个元素?

我有两个与C++中标准库的vector类相关的问题.

  1. 如何检查向量中是否已存在某个值(例如一个整数)?

    我想要的单词如下:"如果向量中已存在整数,则下一个,否则将其添加到向量的末尾."

  2. 如何应用包含向量中每个元素的参数的函数?(看来我不能用for_each做到这一点)

    在单词中:"对于向量中的每个z元素,应用MyAddFn(i,j)"

...或者我可能没有使用stl向量序列容器在正确的轨道上,我应该定义自己的迭代器?

c++ iteration iterator vector

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

OpenStruct.new存储属性但不检索它

在创建一个新的Ruby OpenStruct对象之后,我能够存储属性但不能检索它们(我得到一个空行而是返回nil):

obj = OpenStruct.new # => #<OpenStruct>
obj.x = 10
obj.y = 20
obj                  # => #<OpenStruct x=10, y=20>
obj.x                # => 10
obj.y                #  
                     # => nil
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用不同的名称存储其他属性,一切都按预期工作.这个问题似乎只有在我存储一个名为的属性时才会发生y.我使用以下版本:

ruby 1.9.2p320 (2012-04-20 revision 35421) [i686-linux]

有没有人知道发生了什么?

ruby null openstruct

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

错误C2248:无法访问类中声明的私有成员

我在c ++应用程序中收到此错误:

error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' :
              cannot access private member declared in class '
Run Code Online (Sandbox Code Playgroud)

我在stackoverflow中看到过类似的问题,但我无法弄清楚我的代码有什么问题.有人能帮我吗?

    //header file
class batchformat {
    public:
        batchformat();
        ~batchformat();
        std::vector<long> cases;        
        void readBatchformat();
    private:
        string readLinee(ifstream batchFile);
        void clear();
};


    //cpp file
void batchformat::readBatchformat() 
{
    ifstream batchFile; 
    //CODE HERE
    line = batchformat::readLinee(batchFile);

}


string batchformat::readLinee(ifstream batchFile)
{
    string thisLine;
    //CODE HERE
    return thisLine;
}
Run Code Online (Sandbox Code Playgroud)

c++

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

为什么这个显式转换运算符适用于g ++而不适用于Visual Studio 2013?

以下示例包含两个模板化类,用于表示度和弧度,并使用显式转换运算符在它们之间进行转换.它使用g ++(ideone链接)编译和运行,但不使用Visual Studio 2013 Visual C++ Compiler Nov 2013 CTP (CTP_Nov2013)作为平台工具集.

#include <iostream>

static const double PI = 3.14159265358979323846;

// Forward declarations
template< typename T > class radians;
template< typename T > class degrees;

template< typename T >
class degrees
{
    public:
        degrees(const T value)
            : value_(value)
        {}

        template< typename U >
        explicit operator U() const
        {
            return value_ * PI / 180.0;
        }

        T value() const { return value_; }

    private:
        T value_;
};

template< typename …
Run Code Online (Sandbox Code Playgroud)

c++ gcc explicit-conversion c++11 visual-studio-2013

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

模板化函数专精:链接器错误

当模板参数类型相同时,我试图专门化两个模板参数的功能.我这样做的方式如下:

#include <iostream>
#include <type_traits>

using namespace std;

template<typename U, typename T>
int fun( U& u, T t );

template<>
inline
int fun( int& u, float t )
{
    cout << "int, float" << endl;
    return 0;
}

template<typename U, typename T>
inline
int fun( U& u, typename std::enable_if<std::is_same<U, T>::value ,T>::type t )
{
    cout << "U == T" << endl;
    return 0;
}

int main()
{
    int a;
    float b1, b2;

    fun(a, b1);
    fun(b1, b2);

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

这段代码编译得很好(GCC …

c++ linker templates specialization c++11

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

数学定义表达式的结果

什么mathematically defined result意思?

引用自5/4:

如果在评估表达式期间,结果未在数学上定义或未在其类型的可表示值范围内,则行为未定义.

c++ language-lawyer

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

C/C++中的任意大小整数

  • 有没有办法使用c/c ++创建任意大小的整数?

例如:

int main(void) {
  Int i = Int(3); //3-bit integer
  i = 1; //Represented as: 001
}
Run Code Online (Sandbox Code Playgroud)

奖金

  • 有没有办法对浮动值做同样的事情?

c c++ integer

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

如何编写像Top这样的交互式程序?

当您运行顶部时,您输入一个位于终端中的交互式显示,但命令行已消失.

我想用这种类型的显示器构建一个程序,但是甚至不知道要研究什么.

  • 我从哪里开始?

shell terminal interactive

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

值初始化

$ 8.5/7表示

- 如果T是一个(可能是cv限定的)非联合类类型而没有用户提供的构造函数,那么该对象是零初始化的,如果T的隐式声明的默认构造函数是非平凡的,则调用该构造函数.

我无法理解这句话的最后一部分"如果T隐式声明的默认构造函数是非平凡的,那么构造函数就被调用了."

有人可以用一个例子解释一下吗?

class A
{
    int x;
};

class B : A {};

B b{};
Run Code Online (Sandbox Code Playgroud)

我认为B在上面的代码中有一个非平凡的构造函数.但是我如何观察对B隐式声明的构造函数的调用并确保我的编译器正在调用它?

c++ language-lawyer c++11

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