小编jog*_*pan的帖子

C++将两个变量中较大的一个设置为新值

如果我有两个变量,a并且b,std::max(a,b)返回更高的价值.

是否有可能让这个函数修改哪个变量更大,即if x是第三个变量,

max(a,b) = x;
Run Code Online (Sandbox Code Playgroud)

a==x如果此次通话持有,a则大于b,否则b==x

c++ algorithm max

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

返回对本地对象的引用时的编译器警告

如何在不收到警告的情况下返回对象的引用:

std::string& GetString()
{
    std::string str = "Abcdefghijklmnopqrstuvwxyz";
    return str;
}

int main()
{
    std::string str = GetString();
}
Run Code Online (Sandbox Code Playgroud)

这会导致对恭维的警告.

c++ reference

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

转换size_t以允许std :: vector中的更多元素

我需要std::vector在32位中存储大量元素(更多是unsigned int允许的2 ^ 32-1).据我所知,这个数量受std::size_tunsigned int类型的限制.我可以std::size_t通过铸造来改变这个unsigned long吗?它能解决问题吗?

如果那是不可能的,假设我用64位编译.这会解决问题而不做任何修改吗?

c++

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

C++:字符串运算符重载

我可以在现有类中重载现有的函数/运算符吗?

我试图这样做:

#include <iostream>
#include <string>
using namespace std;

string& string::operator<<(const string& str) {
  this->append(str);
}
Run Code Online (Sandbox Code Playgroud)

但这给了我错误:

test.cpp:5: error: too few template-parameter-lists
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?或者我不能?

c++ operator-overloading c++-standard-library

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

在C++ 11 std :: atomic中,用于++, - 和+ =等运算符的memory_order是什么?

似乎与成员函数不同,您无法指定要使用的memory_order,因此可能会有一些"默认"最终被使用.

c++ atomic std c++11

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

C++ 字符串到固定大小的字符数组可能吗?

嗨,我有以下代码:

char msg[10000];
string mystr = "hello";
Run Code Online (Sandbox Code Playgroud)

我想将 mystr 放入 msg 中。有没有办法做到这一点?我尝试了各种方法,但不断得到:

incompatible types in assignment of 'const char*' to char [10000]'
Run Code Online (Sandbox Code Playgroud)

我试过:

msg = mystr.c_str();
Run Code Online (Sandbox Code Playgroud)

msg = (char[10000])mystr;
Run Code Online (Sandbox Code Playgroud)

无济于事。

c++ string std cstring

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

CPP文件中的C++ 11模板定义,未定义的引用

我发现了一些C++ 11的功能并且有问题.我有一个成员函数'call'

class cscript
{
public:
template <typename ret_t, typename... params>
    bool call(ret_t &ret, const char * name, params... parameters);
....
Run Code Online (Sandbox Code Playgroud)

执行:

template <typename ret_t, typename... params>
bool cscript::call(ret_t &ret, const char * name, params... parameters)
{
    ret_t (*func)(params...);
    func = (decltype(func)) tcc_get_symbol(tcc, name);
    if (!func)
        return true;

    ret = func(parameters...);

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

链接时显示以下错误:

obj\Release\main.o:main.cpp:(.text.startup+0xcc)||undefined reference to `bool cscript::call<int, int, int>(int&, char const*, int, int)'|
Run Code Online (Sandbox Code Playgroud)

电话示例:

script.call(ret, "sum", 2, 3);
Run Code Online (Sandbox Code Playgroud)

有关如何使这项工作的任何建议?

c++ templates linker-errors c++11

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

为什么我不能使用函数适配器compose2?

我在linux上使用GCC 4.1.2,STL必须是SGI STL.我写完之后:

#include <functional>
 std::find_if(PirateFlush, PirateFlush + size,
                compose2(std::logical_and<bool>(), bind2nd(std::greater<UInt32>(), time),
                    bind2nd(std::less<UInt32>(), now)));
Run Code Online (Sandbox Code Playgroud)

编译说:

错误:'compose2'未在此范围内声明

怎么了?

c++ stl sgi

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

我可以从NSString复制到NSMutableString吗?

我有strValue作为NSString,我想复制strValueS含量"到另一个地方.

这个地方是mstrValue,这是NSMutableString.空间mstrValue已经分配.

我想知道我如何使用memcpystrcpy为此目的.

如果不可能,我想知道其他方法.

iphone copy nsstring ios

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

Visual Studio探查器使用大量RAM

我正在尝试对一个相当大的项目进行一个Instrumentation Profiling(在整个解决方案中大约40,000个源文件,但是在分析中的项目有大约200个源文件),用C++编写.

每次我运行分析时,它会创建一个大约34GB的巨大报告,然后,当它要分析它时,它正在尝试(我认为)将整个文件加载到RAM中.

显然,它使计算机无法使用,我必须在分析仪完成之前停止它.

有什么建议?

c++ profiling visual-studio-2010

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