小编bil*_*llz的帖子

以我的方式向后写一个字符串,有时会产生与字符'w'相关的额外输出

这一直令人难以置信,简单的代码:

int main()
{
    typedef std::string::size_type stype;
    std::cout << "What is your first name?\n";
    std::string first,second,fullname;
    std::cin >> first;
    std::cout << "What is your second name?\n";
    std::cin >> second;
    char * backwards;
    fullname = first + " " + second;
    stype fnsize = fullname.size();    
    backwards = new char [fnsize];
    stype b = 0;
    for(stype a = fnsize; a != 0; --a)
    {
       backwards[b++] = fullname[a - 1];
    }
    std::cout << backwards << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

大部分时间都在工作,但是当我写一个像我自己的名字stanislaw terziev时,我得到一个输出 …

c++ string iostream

0
推荐指数
1
解决办法
360
查看次数

0xC0000005:访问冲突写入位置c ++数组

我一直在使用c ++,并且出于某种原因,每次遇到在循环中访问的数组时,它都会一直给我这个错误消息,例如:

int i2 = 0;
for(int n=0; n<sizeof(mapy); n++)
{   
  xybar[i2] = mapx[n] * mapy[n];//
  xbar_squared[i2] = mapx[n] * mapx[n];//
  i2++;
}
Run Code Online (Sandbox Code Playgroud)

i2因为我意识到它不需要的原因是因为当我检查这些值时,我意识到迭代器n已经被替换为值2006而不是数组中的位置导致它在下一次调用时失败,因为它由于我的数组只包含500个数据,因此超出范围.我认为i2可能会解决这个问题,但事实并非如此.

c++ arrays

0
推荐指数
1
解决办法
1851
查看次数

检查字符

如何检查字符数组?例如,我正在制作一个程序,要求我输入密码,让我们说ZEZO,然后检查它是否正确,然后打印" hello zezo ".我目前正在使用turbo c ++来学校.我有一个示例程序:

#include <iostream.h>
#include <conio.h>

void main()
{
    clrscr();
    char * zezo;
    zezo = "Zezo";

    cout<<"Hello "<<zezo;
}
Run Code Online (Sandbox Code Playgroud)

我只需要知道如何检查单词.

c++ string compare

0
推荐指数
1
解决办法
71
查看次数

std :: vector :: erase使用相等的参数

调用迭代方法是否安全,例如STL容器擦除(覆盖2个迭代器),例如在我的情况下std::vector::erase(),两个参数都是vec.end()?我做了一个实验,看起来调用什么也没做,但我想确保我可以在代码中安全地使用它,否则我必须测试我的迭代器并避免erase()它们是相等的.

c++ stl

0
推荐指数
1
解决办法
186
查看次数

C++为什么这不提供整数的系统最大大小?

所以,如果我理解正确,整数是一个字节的集合,它代表基数为二的格式,如果你愿意的话.

因此,如果我有unsigned int test = 0,那么实际上应该只包含一个位字段,所有这些都是零.然而,

unsigned int test=0;
test=~test;
Run Code Online (Sandbox Code Playgroud)

产生-1.

我会认为这将填满所有的位'1',使整数与该系统上的整数一样大....

谢谢你的帮助!

c c++ integer bit-manipulation

0
推荐指数
1
解决办法
139
查看次数

没有这样的运算符"[]"匹配这些操作数

我正在尝试制作一个程序来演示我的CS类使用模板和重载操作符.这是相关代码:

主要:

    ArrayTemplate<int> number(0);
            number[0] = 1;
            number[1] = 2;
            number[2] = 3;

    ArrayTemplate<string> word("na");
            word[0] = "One";
            word[1] = "Two";
            word[2] = "Three";
Run Code Online (Sandbox Code Playgroud)

标题:

template<class T>
T& operator [](const int index) 
{ 
    if(index >= 0 && index < ARRAY_MAX_SIZE)
        return items[index];
    else
    {
        cerr << "INDEX OUT OF BOUNDS!!!";
        exit(1);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试使用我的重载下标运算符时,我得到标题中显示的错误消息:"没有这样的运算符"[]"匹配这些操作数"我不完全确定原因.它为我的整数数组和我的字符串数组都做了.任何帮助表示赞赏.

c++ templates operator-overloading

0
推荐指数
1
解决办法
4052
查看次数

C++,count_if和equals

我有一个struct名字和号码:

struct S {
  string name;
  int number;
};
Run Code Online (Sandbox Code Playgroud)

对象S存储在向量中.矢量基于排序name.可能有多个项目具有相同的项目name.

迭代向量中的项目时,我试图count_if用来检测重复项:

for(size_t i = 0; i < v.size(); ++i)
{
  const S& s = v[i];
  int count = count_if(v.begin(), v.end(), XXX);
  // do something with count
}
Run Code Online (Sandbox Code Playgroud)

在上面,我无法弄清楚XXX应该是什么.我试图创建一个谓词,但它没有用,因为没有什么可比较的:

bool IsEqualName(const S& s) {
  return s.name == ???;
}
Run Code Online (Sandbox Code Playgroud)

我发现的文档有很多不足之处.

我觉得我错过了一些非常明显的东西,但我看不出它是什么.有谁可以指出我的错误?

杰夫

c++ algorithm class countif

0
推荐指数
1
解决办法
3977
查看次数

是否有必要通过多线程访问所有数据,用volatile修饰?

对于原始人,我认为这是必要的. 即使是非原始的,例如数组,我认为这也是必要的.

没有不稳定:

int d[2];
Run Code Online (Sandbox Code Playgroud)

线程1:

while (d[1] > 0) modify(d[0]);
Run Code Online (Sandbox Code Playgroud)

线程2:

while (d[0] > 0) modify(d[1]);
Run Code Online (Sandbox Code Playgroud)

我担心编译器会在没有volatile的情况下更改我的代码.while(true)modify();

所以我在'int d [2]'之前放了volatile; 但是我觉得有点奇怪,一切都装饰着挥发性.

c++

0
推荐指数
1
解决办法
140
查看次数

程序接收信号SIGSEGV,分段故障

我在多线程环境中运行程序,它在某些时候失败了.当我尝试使用gdb而不是显示以下错误.

程序接收信号SIGSEGV,分段故障.

[切换到线程0x7fff677b700(LWP 2777)] 0x00007ffff7aa42b9 in process_incomplete_rows(resultset = 0x507950)at c/mgmt.c:479 479 c/mgmt.c:没有这样的文件或目录.

mgmt.c文件在那里,这个代码适用于某些选项,但有两个或三个选项,它给出了这个错误.可能是导致此错误的原因.它在编码或系统中的错误?或访问某些数据时出错?

c c++ unix linux multithreading

0
推荐指数
1
解决办法
5747
查看次数

这是用c ++调用函数的正确方法吗?

Time t (12, 0, 0); t.GetTime();

Time* t = new Time(12, 0, 0); t->GetTime();
Run Code Online (Sandbox Code Playgroud)

这是使用没有new关键字和新关键字创建的对象来调用方法的正确方法吗?谢谢..

c++

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