补充问题:
但是对于向量arr(10000)是否已经有足够的内存来分配10000 int?或者这样说,如果我只是迭代每个元素并初始化它们,arr是否仍然增长?如果使用push_back(),Vector使用动态分配,但可以强制它使用reserve()预分配内存
选中的构建(在调试库中很常见)也会检查向量操作的边界,这会在调试模式下降低它们的速度。发布版本不应比原始C慢
分页意味着在物理内存已满时将内存移出磁盘。如果你认为内存正在被调出,你必须小心计时。一种常见的技术是多次运行任务并拒绝最长的时间
我只是想知道是否有人知道一个开源项目致力于将ppt(或pptx)文件转换为易于呈现的格式-html、jpg或其他图片类型、pdf
我已经开发了一些代码来开始阅读office文件(我说的是复合二进制文件),现在我开始破解内部ppt流,如图片和PowerPoint文档。但正如你们很多人所知道的,每个流都是巨大的,编写代码来呈现它是一项艰巨的工作。因此,如果有人知道一个开源项目,它可以读取并输出到更容易的文件中,(必须是C++或C——因为它不使用任何API /LIB设施,所以可以在C语言中,java)
我一直在使用getaddrinfo查找基本套接字命令的套接字地址。不过,最近它返回给我的地址是假的IP地址,我使用inet_ntop找到了这些地址。我尝试了我的代码,以及中提供的代码,它们都产生了相同的结果。代码如下:
struct addrinfo hints, *info;
int status;
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
我在中编写了一个简单的单线程客户机-服务器应用程序。当我运行我的服务器时,我会等待一段时间,等待它接受来自客户端的一些请求
当我将客户端连接到服务器时。客户端上的日志消息报告发送了14个字节,而服务器上没有消息。我编写了一个print语句来打印控制台上服务器接受的任何内容,但服务器不打印任何内容
在我看来,客户端似乎已连接到其他服务器
客户端和服务器代码如下所示
服务器代码
\ifndef WIN32\u LEAN\u和\u MEAN
#定义WIN32_精益_和_平均值
#恩迪夫
#包括
#包括
下面的代码让我很困惑
阶级
插入函数
AVLTree::AVLNode* AVLTree::insert(int d,AVLNode *n){
if (n == NULL)
{
AVLNode *n = new AVLNode;
n->data = d;
n->leftchild = NULL;
n->rightchild = NULL;
n->height = 0;
我的问题是,如果我在我的库项目和exe项目中静态链接MFC,我会在最终的exe中有效地链接两个MFC副本吗?如果我添加了第三个项目,因此有多个库引用mfc会怎么样?这听起来很糟糕,但我不知道如何解决它。您不需要链接库项目,因此不会链接到MFC的额外副本。您将从静态库中创建对MFC库的依赖项,但这是正常的。只要.exe项目包含这两个库,最终一切都会正常进行
标签: C++
segmentation-faultstdmap
解决方案:请参阅博佩尔森的帖子和我在下面的评论。
我的地图出现了分割错误。让我困惑的是,在关键点上的n-1迭代可以工作,但在第n次迭代中seg出现故障。更让人困惑的是,迭代seg错误所在的键值(使用迭代器)是在前一次迭代中找到的,甚至是在代码的早期
我试图用valgrind分析seg故障,但是我得到一个无限循环的消息,“信号11从线程0中被丢弃”。因此,valgrind不是很有用
seg断层作用的地图称为现场深度。以下是插入值的方式:
map<string,unsigned short*&
我正在使用Valgrind插件在Ubuntu12.04上运行Eclipse IDE。我在C++中玩了一段时间的游戏,我好像在某个地方有内存错误。通常,我用Valgrind追踪这些。然而,当我运行valgrind时,glut无法初始化。我应该注意,当我不使用valgrind时,游戏初始化没有问题。我的主要功能的代码如下:
int main(int argc, char** argv) {
char windowTitle[12] = "Game Window";
printf("Initi
Hi堆栈溢出用户
错误描述:
对于一个小型项目,我决定使用portaudio库(我使用Windows 7 64位和C++):
在使用该库之前,我必须在另一个Visual Studio项目中构建一个.DLL文件,然后将输出链接到我自己的Visual Studio 2010项目(32位)。我尝试使用这段简单的代码:
#include <iostream>
#include <portaudio.h>
using namespace std;
void main()
{
c
我包含了d3d11.h头,但当我声明这种类型的指针时:
ID3D11Textrue2D* pDepthStencilBuffer = 0;
它说ID3D11Texture2D没有定义
那么我该如何解决这个问题呢?你错发了ID3D11Textrue2D,应该是ID3D11Textrue2D你错发了ID3D11Textrue2D,应该是ID3D11Textrue2D,尝试添加所有有助于找到问题的标签。此外,你应该始终在标题中包含你的问题。不要使用像“关于ID3D11Texture2D”这样的笼统说
对于以下代码,是否可以将结果输出到字符串而不是wofstream?谢谢你
wstring w = L"test";
std::wofstream ofs("test.txt");
std::locale utf8_locale(std::locale(), new boost::archive::detail::utf8_codecvt_facet());
ofs.imbue(utf8_locale);
std::copy(w.begin(),w.end(),
std::ostream_
我想写的代码大约有95行,这太长了,无法在这里发布,但这是基本概念:
unsigned long long i, total;
for(i;true;i++){
total = total + i;
cout << "Your new total is " << total << endl;
}
无符号长i,总计;
for(i;true;i++){
总计=总计+i;
cout>misc;
如果(!(bool)(计数%misc)){
infl
我想在窗口标题中添加一个中文文本,该标题由OpenCV的cvShowImage()函数调用。但它并没有给出正确的结果
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace cv;
using namespace std;
int main(int argc, const char * argv[])
{
const char *pstrFilename = "EDF001.png";
const
谢谢 您可以使用Exec任务的IgnoreExitCode:
<Target Name="MyAwesomePostBuildTarget" AfterTargets="Build">
<Exec IgnoreExitCode="true" Command="xcopy etc. etc." />
</Target>
您可以通过在命令末尾附加| | exit/b0来覆盖(几乎)任何批处理命令的失败结果。例如:
del somefile.txt| |退出/
无符号long类型的确切二进制格式是什么(至少在visual studio中是这样)
我正在使用别名指针执行一些逐位操作,我在无符号字符指针上设置位,然后在无符号长指针(别名)上执行一些其他操作
unsigned long long的格式看起来很奇怪,因此,它会将结果弄乱,而且,位移位操作的行为也很奇怪:
从位掩码测试来看,该数据似乎是从right:LSB->MSB:left排列的,这意味着>>移位会将数据移到其较高的有效位,而不是较低的有效位,是否正确
编译器是ICC 13.0,操作系统是wi
根据C++11标准的表59,时钟::is_staid函数返回const bool,而不是bool。无论哪种方式,返回类型都是一个内置类型的右值,因此不可修改,因此const似乎只添加了噪声。那么为什么const bool而不是简单的bool?是稳定的不是一个函数。它是一个静态成员。如果不是const,您可以更改它
当我有一个简单的指针时,我可以像这样安全地包装数组:
p+=X; // p pointer p can point beyond end of array
if(p>=array+array_size) p-=array_size; // forget about potential multiple wrap
对于任何可索引容器(尤其是deque)上的迭代器,我是否可以安全地执行同样的操作
p+=x;
if(p>=mydeque.end()) p-=mydeque.si
dll将特定文件上载到服务器。我能够使用LoadLibrary()和CreateRemoteThread()成功地将dll注入“notepad.exe”,但它没有被执行。甚至连dllmain()函数都没有。不知道出了什么问题。如前所述,DLL入口点的名称为DllMain(),而不是DllMain()。签名为:
从中,您不应在DllMain()中执行以下任务:
…调用User32.dll或Gdi32.dll中的函数。某些函数加载另一个DLL,该DLL可能未初始化
MessageBox()是在Use
我制作了一个八叉树来快速匹配三维点。而且速度很快!然而,删除八叉树所需的时间是构建八叉树所需时间的100倍。我不明白为什么会这样。这是我的班级:
#pragma once
#include "LeakCheck.h"
#include "vec3.h"
namespace Geometry
{
static const float tolerance = 1.0e-30f;
class VertexOctree
{
private:
float halfSize;
vec
目前我的表单中有大约4个小部件,我想知道是否有一种方法可以最小化表单上的小部件,然后在需要时再次恢复它们。我熟悉的一种方法是使用框架并将小部件放置在框架上,然后在需要时隐藏框架。有更好的方法吗?这里有一个片段可以隐藏每个小部件
foreach (QWidget* widget, QApplication::topLevelWidgets()) {
widget->hide();
}
由于您拥有widget对象,因此可以使用此widget执行任何您想要的操作
我有两个问题。我正在处理一个基于文件的问题
这是我的第一个节目
ofstream outRegister( "account.dat", ios::out );
if ( !outRegister ) {
cerr << "File could not be opened" << endl;
exit( 1 );}
cout<<"enter your username :";
cin>>a;
标签: C++
getlinestringstream
地图-是我打开的一个文件。
线串
上半部分工作,但下半部分不工作
getline(map, line);
getline(ssvalues, values, '|'); // Gets the name of the tileset file
tileset.loadFromFile(values.c_str());
getline(ssvalues, values, ' '); // Gets the size of the tile
tileSize
我必须重载运算符+作为我的类集(应该是模板类)的非成员函数
我遇到的问题是错误(在编译时):Operator+(Set,const Set&)必须接受零或一个参数
但是我的非成员函数不在我的类集中,所以这个函数应该有两个参数。我真的很失望
这是我的密码:
#ifndef GUARD_set_h
#define GUARD_set_h
#include <iostream>
#include <array>
#include <vector>
#include
我尝试将其添加到.pro文件:
LIBS += "$$_PRO_FILE_PWD_/common.o" "$$_PRO_FILE_PWD_/MD5_std.o"
这是:
LIBS += /full/path/to/common.o /full/path/to/MD5_std.o
我还尝试设置INCLUDEPATH并将.o文件添加为.pro文件中的“其他文件”和“源”,但无论我做什么,对.o文件中函数的调用都会导致未定义的引用
此外,根据我在互联网上找到的所有建议(这对他们来说确实很有效,这
如果我尝试做以下事情:
srand(time(NULL));
for(int i = 0; i < 10000; i++){
float x = rand() % 1000000000000;
output_file << x << endl;
}
srand(时间(空));
对于(int i=0;i
我只是想理解这个函数。我说的返回类型是指向对象结果的指针,应该是内存中的地址,对吗?我还返回了fruitInCharacter中的未引用对象Fruit,它也是一个内存地址
Fruit* Player::fruit(int location)
{
if (location<(int)fruitInCharacter.size()) {
return &fruitInCharacter.at(location);
}
return NULL;
}
这个问题与目标检测有关,基本上是检测任何“已知”目标。例如,假设我有以下对象
桌子
瓶子
摄像机
汽车
我将从所有这些单独的物体上拍摄4张照片。一个从左,一个从右,另外两个从上到下。我最初认为,通过每一张4张照片来识别这些物体是可能的,因为你有4个角度的照片,无论你如何看到物体,你都可以检测到它
但是我被一些人的想法弄糊涂了,他们想用每个物体上成千上万的正面和负面图像来训练引擎。我真的不认为这是必要的
所以简单地说,我的问题是,为了识别一个物体,我需要这成千上万的积极和消极的物体吗?或者仅仅从4
此答案说明如何将矩阵的一行复制到另一行:
然而,如果我试图将矩阵的一行复制到列向量,程序就会突然结束。
例如:
一种可能的解决方法是:
Mat A(640,480,CV_64F);
Mat B;
A.row(0).copyTo(B);
B = B.t();
但是,如果A是另一种类型,那么如何在B中获取类型CV_64F?数据类型也被复制了吗?而且——最重要的是——为什么我需要这种变通方法?因为API不支持以下代码(仅转置行):
A.row(0).t().copyTo( B.col(0) );
我用鼠标在一个3D物体上画画
我现在的做法是通过片段着色器将UV坐标打包到RG像素,如下所示:
in highp vec2 UV;
out vec4 fragColor;
void main()
{
fragColor.r = UV.x;
fragColor.g = UV.y;
}
我将它们渲染到屏幕外的FBO,然后在鼠标下读取像素以获得CPU端的UV坐标
float pixel_array[4];
CALL_GL(glReadBuffer(GL_COLOR_ATTACHM
使用。您要关闭SYMOPT_UNDNAME选项以查看损坏的名称
因此,大致上:
DWORD options = SymGetOptions();
SymSetOptions(options & ~SYMOPT_UNDNAME);
if (SymFromAddr(hProcess, dwAddress, &dwDisplacement, pSymbol))
{
// etc...
}
SymSetOptions(options);
谢谢,这很有
我不熟悉使用VisualStudio和OpenGL和SDL库
我在设置程序时遇到了问题,并且在尝试构建程序时不断出错
有人能帮我解决以下问题吗-
Error 1 error LNK2019: unresolved external symbol __imp__glewInit@0 referenced in function _SDL_main
Error 2 error LNK2019: unresolved external symbol __imp__glewGet
我知道,要获得整数的前j个最低有效位,可以执行以下操作:
int res = (myInteger & ((1<<j)-1))
int res=(myInteger&((1获取整数的j最高位,或者更确切地说是无符号整数,因为有符号整数中的按位操作会带来痛苦):
~0u仅由设定位组成。将j位向右移动,我们可以得到j左侧的零位,然后是一位,反转后,我们可以得到j左侧的一位,然后是零,这是我们需要隔离另一个整数的最高位的掩码
注意:这是在您希望隔离位保持在相同位置的假设下进行
我们得到了一个任意字符串。现在,我们可以对这个字符串执行一些操作。
任何字母都可以转换为任何其他字母。现在,我们可以从字符串中选择任何字母,并将其转换为任何其他字母。这将被称为一次操作
我们如何将一个字符串转换成一个字符串,该字符串的字母是按上述最小操作数排序的
欢迎使用所有解决方案,包括开箱即用的解决方案
附言:这里有一个例子-
Given string: dcba
We can convert this string into a sorted using at least 3 operat
所以我被教导过,就像我们中的许多人一样,编译器是一个将人类可读代码转换成机器可读代码的程序。然而,您越深入研究它,就会发现“编译过程”实际上被分成4个不同的部分:预处理器、编译器、汇编器和链接器。我想我不明白这些部件在哪里合适,这让我有点困惑
典型编译过程中描述的所有步骤都是
编译程序
或者像汇编程序和链接程序这样的东西是独立构建的吗
与编译器一起进入IDE以生成代码
它是否依赖于编译器或编程语言
如果分开,编译器是否只负责汇编代码
创建以及优化汇编代码
术语“编译器”的含义取决于上下文
对于初
我试图创建一个模板类的部分专用成员,其中内部类的模板类型是来自外部类的模板类型。。。以下是:
template<typename T>
struct Num
{
template <T n>
struct VH
{
enum { value = n };
T v = value;
};
};
template <typename T> struct Num<T>::VH<0&g
我正在上一堂编程入门课,试图在一组圆圈中找到第三大区域,然后返回该圆圈所在位置的索引,无需排序,但遇到了一些问题
输入
预期产量
2
实际产量
4
如果我错了,请更正,但我认为我为最大值、第二大值和第三大值分配了错误的值?为什么它返回4?这是我目前所拥有的,谢谢你的帮助^_^
int getThirdLargestArea(Circle** arr, int size) {
Circle largest = *arr[0];
Circle secondlargest = *a
我知道这个问题的根源可能是使用帧间的增量时间来计算球员的移动,所以它不是常数。但它平滑运动,所以我不知道如何做它的其他方式。我尝试使用恒定速度值,使碰撞完全准确-速度必须非常低,我对此不满意
void Player::move() {
sf::Vector2f offsetVec;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::W))
offsetVec += sf::Vector2f(0, -10);
if
我有一个包含2个类的头文件。类A(这是一个非常大的类)和继承类A的类B。我不希望允许人们创建类A的对象,甚至不能看到它的静态成员。他们应该只和B班一起工作。最好的方法是什么
(一般来说,A是一个“helper类”)要限制类的创建,请将类A的构造函数设置为私有,并将类B声明为友元类。这样,只有B可以实例化A
class B;
class A
{
private:
A();
friend class B;
};
这同样适用于方法(静态或非静态):将它们都设为私有,并且friend语
我发现很多时候我只需要一个小的std::map(比如少于10个键),或者一个只包含少数元素的小std::vector,我认为总是动态分配它们真的是在浪费性能,特别是在std::map,std::vector这样的结构中,这涉及到很多动态分配
有什么好建议吗?至少减少了动态分配的数量,更好的不牺牲易用性。感谢您可以为小数据使用堆栈分配的内存(因为堆栈分配非常快,基本上只是堆栈指针的移动;尽管堆栈的空间非常宝贵,而且是非常有限的资源),为大数据使用堆分配的内存。换句话说,按照std::string的
我只想在表视图中的qt中显示数据库中的一行。
这是我当前的代码:
void Favorites::on_pushButton_load_fav_clicked()
{
MainWindow conn;
QSqlQueryModel *modal = new QSqlQueryModel();
conn.connOpen();
QSqlQuery *qry = new QSqlQuery(conn.mydb);
qry->prepare("select username from Waehr
我有一个应用程序要安装到多个环境中,每个环境都有相同的相对IP地址
举个例子,假设有三种设备(比这个复杂得多,但为了简单起见,我把它删减了)。设备和环境到IP地址的映射如下:
Environ A, baseline = 192.0.0.0, range = 192.0.0.0 - 192.0.1.255
device-1 = OR:0.0.0.5 = 192.0.0.5
device-2 = OR:0.0.0.200 = 192.0.0.200
我的文件
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
MyFileSystemModel model;
};
我使用了MultiSelection属性,但它只在我用鼠标单击treeview中的项目时起作用,我不想在
我正在尝试使用singleton实例在不同的线程上运行print()和print(char ch)方法
有谁能帮我找出我为什么会出错:-
错误C3867:“Singleton::print”:函数调用缺少参数列表;使用“&Singleton::print”创建指向成员的指针
错误C3867:“Singleton::print”:函数调用缺少参数列表;使用“&Singleton::print”创建指向成员的指针
错误C2661:'std::thread::thread':没有重载函数接受2个参数
我正在尝试编写一个简单的视频流应用程序,它执行以下任务:
从相机获取一帧(该部件正在工作)
修改框架
发送到gstreamer管道
代码:
VLC玩家无法使用命令查看任何内容:
vlc -vvv rtp://@localhost:5000
我试过:
cv::VideoCapture cap("udpsrc port=5000 ! tsparse ! videoconvert ! appsink");
但是它没有启动(没有错误日志,只是没有得到任何帧)。
我使用的是OpenCV 3.1,我已经
标签: C++
while-loopinfinite-loopcontrol-flow
您下侧太冷(显示器------)
您在下方很热(显示---)
您在上面很热(显示+++)
您的上排气管太冷(显示屏+)
你在那里(你赢了)
在我输入我的猜测之后,我不断地得到一堵“+++++++++++…”或“----…”的墙,我不知道为什么。这是我目前掌握的代码:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
in
标签: C++
language-lawyertemplate-specializationstatic-assert
以下代码编译得很好:
#include <type_traits>
template <typename T> struct dependent_true : std::true_type { };
template <typename T> struct dependent_false : std::false_type { };
template <bool B = false>
class X { static_assert(depend
从到问题“何时应使用静态、动态、常量和重新解释?”
C样式转换和函数样式转换分别使用(类型)对象或类型(对象)进行转换
然后,它开始列出C样式转换的行为,但从不告诉函数样式转换是否相同
我问是因为ReScRePER C++在C样式的情况下警告我,但是在函数样式转换的情况下不警告我:
函数样式的cast与C样式的cast有什么不同?或者,如果它们是相同的,它是Resharper中的一个bug,并且应该发出警告吗?int(d)使用安全吗?它看起来比建议的static_cast(d)简单得多我没有引
我已将变量x指定为等于20,并希望将其与字符串连接起来。我的C++代码在下面。
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main() {
int x = 20;
int y = 15;
if (x >= y) {
cout << x + " is greater than " + y
为什么这样做有效
std::function<int(int)> ret_func = [](int x) { return x; };
std::function<std::string(int)> ret_func1 = [](int x) { return std::to_string(x); };
std::function<void(int)> func = ret_func;
std::function<void(int)> func1
标签: C++
c++20allocatorc++-conceptsc++23
在Andrei中,Alexandrescu概述了std::allocator接口的一些暴行,并简要强调了它实际上与分配无关,并提出了对这些分配器的另一种思考方式,这将使它们更具可用性和模块化。或者,引用描述:
分配器有一个不光彩的过去,阴暗的现在和不愉快的未来。STL引入了分配器,作为20世纪90年代过时的分段内存模型的权宜之计。他们的设计是有限的,在很多方面甚至没有帮助分配那么多。因为分配者在那里,他们只是继续在那里,直到他们无法根除或工作,尽管社区付出了巨大的努力
本讲座讨论了根据第一原理创
1 2 3 4 5 6 ...
下一页 最后一页 共 11500 页