草庐IT

c++ - 将 Vector<int> 转换为字符串

这个问题在这里已经有了答案:Convertavectortoastring(25个答案)关闭4年前。我想编写一个程序,首先输入字符串数组,然后将其转换为整数,然后将其推送到一个vector。代码是这样的:stringa;vectorc;cout>a;cout输出:Enterthemessage=hahaConvertedMessagetointeger=1049710497然后我将它写在一个文件中,在下一个程序中我想读回它,并将它转换回字符串,我的问题是如何做到这一点?将vector[1049710497]转换回字符串“haha”。我非常感谢任何帮助。谢谢。

c++ - 如何在 C++ 中解释 "const int *const & variable"

当一个人将两个变量别名为inta;constint&b=a;这两个变量实际上是同一事物,因此应用于变量a的任何更改也会应用于变量b。然而,当用指针完成相同的技巧时,它似乎不会以相同的方式工作,如以下程序所示:#includeintmain(void){int*a=(int*)0x1;constint*const&b=a;//Nowbshouldbeanaliastoa.a=(int*)0x2;//Thisshouldchangebto0x2.std::cout现在变量a似乎根本不是变量b的别名,但为什么呢? 最佳答案 constin

c++ - C++ int 操作在 mips 架构上是原子的吗

我想知道我是否可以在不锁定mipscpu(尤其是Amazon或Danube)的情况下读取或写入共享int值。我的意思是如果这样的读取或写入是原子的(其他线程不能中断它们)。需要明确的是-我不想阻止线程之间的竞争,但我关心int值本身是否未损坏。假设编译器将所有int对齐到cpu字的边界,这应该是可能的。我使用gcc(g++)。测试还表明它似乎工作正常。但也许有人肯定知道? 最佳答案 使用gcc的内置原子操作,如果它们不受支持,您将收到警告:http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Ato

c++ - C/C++ 将带符号的 char 打包成 int

我需要将四个有符号字节打包成32位整数类型。这就是我想出的:int32_tbyte(int8_tc){return(unsignedchar)c;}intpack(charc0,charc1,...){returnbyte(c0)|byte(c1)这是一个好的解决方案吗?它是可移植的(不是通信意义上的)吗?有没有现成的解决方案,也许是boost?我最关心的问题是将负位从char转换为int时的位顺序。我不知道正确的行为应该是什么。谢谢 最佳答案 char不保证是有符号或无符号的(在PowerPCLinux上,char默认为unsig

c++ - int 变量 = 1; void main() { int i = i; }

这是我遇到的一道面试题:intvar=1;voidmain(){inti=i;}赋值后i的值是多少?它真的依赖于编译器还是只是未定义?我在cygwin上的g++似乎总是给我0。谢谢 最佳答案 i有一个不确定的值,因为它没有被初始化。因此,它不仅依赖于编译器,而且还依赖于该内存位置中发生的任何事情。局部范围内的变量在C++中不被初始化。我假设顶部的intvar=1;你的意思是inti=1;。局部作用域i仍将被使用,因为变量的声明点紧接在其声明符之后和其初始化程序之前。更具体地说,C++03标准的第3.3.1-1节:Thepointof

c++ - 尝试在 getline 中使用 int

cout>";getline(cin,totalquestions);这一小段代码来self创建的类中的一个函数,我需要totalquestions是一个int以便它可以运行一个for循环并不断询问总数我问过的问题。questionq;for(inti=0;i这段代码在哪里发挥作用?有没有人有任何想法使这项工作? 最佳答案 使用cin>>totalquestions;也检查错误if(!(cin>>totalquestions)){//handleerror} 关于c++-尝试在getli

c++将char转换为int的奇怪问题

我是C++的新手,当我遇到一个非常奇怪的问题时,我正在尝试解决ProjectEuler中的一个问题。我将错误减少为以下内容。考虑以下简单代码:#includeusingnamespacestd;intmain(){intnumdigits;cout>numdigits;chartmpchar;cin>>tmpchar;cout基本上,如果第一个输入(numdigits)低于48,一切正常,但如果输入为48或更大,如果有一个非常奇怪的行为:air:programmingsanti$./loldigits:3033这是怎么回事?我疯狂地试图找出算法中的错误,直到我发现错误出在我最初懒得看的

c++ - 如何释放 C++ 内存 vector<int> * arr?

我有一个vector*arr,实际上是一个二维数组。arr=newvector[size];我就这样可以吗deletearr;威尔arr[i]被自动删除,因为它是标准vector? 最佳答案 不,你应该使用delete[]当你使用new[].但这太疯狂了。您正在为一个维度使用友好的容器,然后通过对外部维度求助于手动动态分配来取消所有优点。相反,只需使用std::vector>,或将两个维度展平为一个vector。 关于c++-如何释放C++内存vector*arr?,我们在StackOv

c++ - int [] 和 int* 作为函数参数的区别

这是一道面试题:int[]和int*有什么区别,它们都是函数的输入参数。f(inta[],int*b)我的答案:对于f(),它们具有相同的功能。第一个是a[]中第一个元素的起始位置。第二个指向一个int。但是,如何在不传递其他参数的情况下将它们彼此区分开来呢? 最佳答案 作为函数参数,两者类型完全一样,int[]被重写为int*,无法区分。StackOverflow中的许多问题都涵盖了这个主题,c-faq甚至有一个specialsection在指针和数组上(作为参数或不作为参数)。看一看。

c++ - 当变量达到最大值时,unsigned int 的递增会导致未定义的行为吗

我的代码中有一个计数器,当它达到unsignedint最大值时,我希望我的计数器回到0。我用一小段代码进行了测试,它可以工作,但我不知道这是否是未定义的行为#include#includemain(){unsignedinta=0;a=~a;//Maxvalueofunsignedintprintf("%u\n",a);a=a+1;//isitallowedtoincrement"a"when"a"reachtheMax?printf("%u\n",a);//display0} 最佳答案 a=a+1;//isitallowedtoi