小编The*_* do的帖子

将参数传递给函数

将arg传递给一个不是"完全匹配"类型的函数但是通过简单或用户定义的转换到这种类型是不是一个糟糕的编程原则?例如:

void f(bool option);
Run Code Online (Sandbox Code Playgroud)

主要是后来的(这是非常假设的,所以请不要就该代码提出建议):

int a = getSomeValue();

f(a);//here instead of bool I'm passing int - is it a bad programming practice or not?
Run Code Online (Sandbox Code Playgroud)

c++ coding-style

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

查找字符串中多个出现的子字符串[C++]

是否有任何STL算法或标准方法来查找字符串中特定子串的出现次数?例如在字符串中:

'How do you do at ou'
Run Code Online (Sandbox Code Playgroud)

字符串"ou"出现两次.我尝试了一些带有和没有谓词的STL算法,但我发现STL的那些算法想要比较字符串的组件,在我的例子中是char但不能?比较子串.我想出这样的事情:

str - string

obj - 我们正在寻找的子串

std::string::size_type count_subs(const std::string& str, const std::string& obj)
{
std::string::const_iterator beg = str.begin();
std::string::const_iterator end = str.end();
std::string::size_type count = 0;
while ((beg + (obj.size() - 1)) != end)
{
    std::string tmp(beg, beg + obj.size());
    if (tmp == obj)
    {
        ++count;
    }
    ++beg;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

string substring

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

函数中的默认参数[C++]

我试着这样做:

int& g(int& number = 0)
{
//maybe do something with number
    return number;
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.它必须通过引用传递.感谢您的任何帮助.

PS我认为一旦你输入Title就出现"相关问题"是一个好主意,但我也认为只有当它们与特定语言相关时才应该显示它们,即对于我来说看待类似主题并不是没用的问题,但在Ruby中.

c++ default-value

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

运营商=可能不是会员吗?

有一个形式的建筑:

struct Node
{
Node():left_(nullptr), right_(nullptr)
{ }
int id_;
Node* left_;
Node* right_;
};
Run Code Online (Sandbox Code Playgroud)

我想启用语法:

Node parent;
Node child;
parent.right_ = child;
Run Code Online (Sandbox Code Playgroud)

所以为了做到这一点,我需要:

Node& operator=(Node* left, Node right);
Run Code Online (Sandbox Code Playgroud)

但我得到的消息是,operator =必须是fnc的成员; 有没有办法绕过这个限制?

c++

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

如何查看编译器生成的代码

来自TC++ PL Bjarne的一个例外(ch.5,e.8)中的人要求做以下事情:
''运行一些测试,看看你的编译器是否真的使用指针生成等效的迭代代码并使用索引进行迭代.如果不同可以请求优化程度,看看是否以及如何影响生成代码的质量"'

知道如何吃它和什么?谢谢你的建议.

c++ compiler-construction testing

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

了解堆上保留内存的大小

有没有办法在堆上获得以前分配的内存的大小?
例如:

//pseudo-code

void* p = operator new (sizeof(int) * 3);
unsigned size = getSomeHow(p);  
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
2
解决办法
429
查看次数

Boost :: Test的问题

为什么这(从升级网站复制)给我一个错误?!在VS 2010旗舰版:

#include <boost\test\unit_test.hpp>

#define BOOST_TEST_MODULE MyTest


int add( int i, int j ) { return i+j; }

BOOST_AUTO_TEST_CASE( my_test )
{
    // seven ways to detect and report the same error:
    BOOST_CHECK( add( 2,2 ) == 4 );        // #1 continues on error

    BOOST_REQUIRE( add( 2,2 ) == 4 );      // #2 throws on error

    if( add( 2,2 ) != 4 )
      BOOST_ERROR( "Ouch..." );            // #3 continues on error

    if( add( 2,2 ) != 4 ) …
Run Code Online (Sandbox Code Playgroud)

c++ boost unit-testing

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

为什么相同的类型不同?

为什么这个(char在我的实现上签名):

cout << std::is_same< char,signed char>::value;

输出错误?

c++ metaprogramming

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

在海湾合作委员会上发出警告

有没有办法可以将字符串消息作为GCC中的警告传递(但不是普通消息)?

c++ gcc

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

分裂很久很久

怎么可能"分裂"即长长型,所以它的第一部分是长型的变种而第二部分也是长型的变种.

long long long_type = 0xaaaabbbbccccdddd;
Run Code Online (Sandbox Code Playgroud)

并且在第一个int中我想要long_type var的前半部分(从哪一侧无关紧要)和第二个var int的后半部分.

c++

3
推荐指数
2
解决办法
2152
查看次数