小编Val*_*ond的帖子

<string>和<string.h>之间的区别?

怎么来这个代码

std::map <std::string , int> m;
m["a"]=1;
Run Code Online (Sandbox Code Playgroud)

编译(我正在使用MSVC 2010)

#include <string>
Run Code Online (Sandbox Code Playgroud)

但没有

#include <string.h>
Run Code Online (Sandbox Code Playgroud)

c++ string header header-files

47
推荐指数
6
解决办法
5万
查看次数

$变量名?

我偶然发现了一些像这样的(c ++)代码:

int $T$S;
Run Code Online (Sandbox Code Playgroud)

首先,我认为它是某种PHP代码或者错误地粘贴在那里但它编译并运行得很好(在MSVC 2008上).

什么类型的字符对C++中的变量有效,是否还有其他奇怪的字符可以使用?

c++ variables identifier variable-names visual-c++

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

如何使用与其文件扩展名相关联的程序打开文件?

有一种简单的方法可以通过Windows中的相关程序打开文件吗?(比如在Windows资源管理器中双击它,但使用我的代码自动完成)

例如,在计算机A上,"text.txt"将在wordpad中打开,但在计算机B上,它将由Notepad ++打开,因为用户文件扩展名分配.

我试过ShellExecute

ShellExecute(0, L"open", L"c:\\windows\\notepad.exe" ,L"c:\\outfile.txt" , 0 , SW_SHOW );
Run Code Online (Sandbox Code Playgroud)

这有效,但如果我省略notepad.exe参数奇怪的事情发生(显示随机浏览器).

c++ windows

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

std :: set iterator自动为const

可能重复:
C++ STL集更新很繁琐:我无法更改元素

我已经解决了问题并更改了名称,因此为了简单起见.

基本上我实例化一个类,并将其存储在std :: set中,稍后我想要引用该类,以便我可以检查它的值并修改它们......

简化代码:

        MyClass tmpClass;
        std::set<MyClass > setMyClass;
        setMyClass.insert(tmpClass);
        std::set<MyClass >::iterator iter;
        iter=setMyClass.begin();
        MyClass &tmpClass2=*iter;
Run Code Online (Sandbox Code Playgroud)

和错误:

error C2440: 'initializing' : cannot convert from 'const MyClass' to 'MyClass &'
Run Code Online (Sandbox Code Playgroud)

(我删除了部分错误消息"MVB :: Run ::"以清除它.)

如果我在最后一行代码中添加一个前面的"const",那么一切都运行良好但是我无法更改值...

这是正常行为,我必须删除数据,更改值并重新将其重新放回?

我觉得这与集合的排序有关,但我不会触及用于排序的变量.

c++ const std set

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

在c ++中是否有标准的"int类"?

c ++是否有(或多或少)标准int类?

如果不是这样,是否计划说C++ 13,如果不是这样,是否有任何特殊原因?

我猜想OOP设计会从中受益,例如,在返回int的自定义类中有一个赋值运算符会很好:

int i=myclass;
Run Code Online (Sandbox Code Playgroud)

并不是

int i=myclass.getInt();
Run Code Online (Sandbox Code Playgroud)

好的,有很多可能有用的例子,为什么不存在(如果没有)?

它适用于航位推算和其他滞后补偿方案,并将这些值视为"正常"变量将是好的,无论如何!

c++ oop int class

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

在从Lua调用的C++中,lua_type(L,0)返回9,没有记录

我在我的(C++)游戏中使用Lua作为脚本语言.在一个调用中(从lua到c ++)我检查堆栈顶部的类型:

if(lua_type(L, (0)) == LUA_TSTRING)
Run Code Online (Sandbox Code Playgroud)

但有时lua_type(L,(0))返回9.

我似乎无法找到任何引用(返回值应介于-1和8之间或LUA_TNONE,LUA_TNIL,... LUA_TTHREAD).

发生了什么?

c++ lua

7
推荐指数
1
解决办法
330
查看次数

C++ Semicolon课后,struct,enum,......没用但编译器仍会发出错误?

可能重复:
在C++类中,为什么在结束括号后的分号

这是我一直想知道的事情,为什么你必须在c ++的类,结构或枚举的结束括号后面加一个分号?

更糟糕的(或实际问题),为什么编译器在发出警告时会发出错误?

将分号放在那里是否真的很重要,为什么?

c++ compiler-construction

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

适用于Windows的Snmp Server

我正在寻找一个用于Windows的snmp服务器,有免费(或至少是工作试用版),我只能找到客户端吗?

我知道我可以安装windows snmp服务,但是在工作中它并不是一个真正的选择(我没有所需的"win xp"CD,支持也很复杂,甚至更糟,星期五).

谢谢!

windows snmp

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

擦除for(-each)自动循环中的项目

有没有办法在这样的for循环中使用自动变量时擦除特定元素?

for(auto a: m_Connections)
{
    if(something)
    {
        //Erase this element

    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以说

for(auto it=m_map.begin() ...
Run Code Online (Sandbox Code Playgroud)

要么

for(map<int,int>::iterator it=m_map.begin() ...
Run Code Online (Sandbox Code Playgroud)

并手动增加迭代器(和擦除),但如果我能用更少的代码行完成它,我会更高兴.

谢谢!

c++ iterator std auto

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

如何拆分大switch语句

我正在制作一个在线游戏,当我从客户端接收数据时,我会收到几个“结构”(比如“我的位置”、“使用药水 23”、“攻击玩家 45”、“talk bla bla”、注销等) .),这些结构被安全读取并放入结构中,推送到列表中并(稍后,当服务器有时间时)进行处理。

问题是处理是一个大的 switch 语句(打开某种枚举-“RTTI”),我有 60 多个不同的结构,它们都是不同的。

因此,包含处理代码的 .cpp 开始变得相当大,并且随着我不断向游戏添加功能(c++ 大约在 4000-5000 行之间),它不会随时缩小。

我可以看到一个简单的解决方案,每种情况都会调用另一个文件中的函数,但这实际上会(请注意 harriyott,是的,因为我的项目和驱动器将被新文件淹没)会爆炸我需要知道的文件数量并跟踪。

我知道我可以在几个 fileN.cpp 中分割它(案例)并在处理文件中制作 '#include "file1.cpp" #include "file2.cpp" 等等,但这似乎是非常错误的。我“想出”来规避这个问题的任何其他方式似乎都太“hacky”了。

所以问题是,你如何很好地拆分一个大的 switch 语句?

c++ networking

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