Size_t被定义为一个unsigned整数,但它的大小取决于你是在32位还是64位机器上.什么是正确和便携的打印方式size_t?
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int main() {
vector<double> vector_double;
vector<string> vector_string;
...
while (cin >> sample_string)
{
...
}
for(int i = 0; i <= vector_string.size(); i++)
{
....
}
for (int i = 0; i < vector_double.size(); i++)
....
return 0;
}
Run Code Online (Sandbox Code Playgroud) 签名/未签名的不匹配一定是坏的吗?
这是我的计划:
int main(int argc, char *argv[]) {
unsigned int i;
for (i = 1; i < argc; i++) { // signed/unsigned mismatch here
}
}
Run Code Online (Sandbox Code Playgroud)
argc签了,i不是.这是一个问题吗?
当我使用 g++ 编译 C++ 程序时
warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( int i=0; i< myvec->size(); i++ ){
^
Run Code Online (Sandbox Code Playgroud)
其中myvec是 的对象std::vector<float>。
为了迭代 std::vector 中的元素,我需要处理警告吗?谢谢。
我在codepad.org上运行以下代码,我收到此错误."在成员函数'double Xchange :: getprice(std :: string)'中:第87行:警告:有符号和无符号整数表达式之间的比较"
这是我的代码:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Xchange
{
public:
Xchange();//does nothing (?)
double getprice(string symbol);
private:
vector <Stock> stocks;
};
double Xchange::getprice(string symbol)
{
for(int i=0; i < stocks.size(); i++) {
if(stocks[i].getsymbol()==symbol) {
return stocks[i].getprice();
}
}
return -1; //means not found
}
Run Code Online (Sandbox Code Playgroud) 我无法理解文字常量的类型修饰符的用途是什么,比如数值常量:
75
75u
75l
75ul
75lu
Run Code Online (Sandbox Code Playgroud)
在什么情况下这可能有用?我的意思是如果你已经为变量类型声明了一个类型修饰符,我认为没有必要这样做.如果有人能帮助我理解这一点,那将是惊人的!谢谢!
奖金问题:"文字"是否与"常数"相同,你可以只说"文字"而不是"文字常量"吗?
我刚开始使用OpenGL.这是我的第一个代码:
// OpenGL hello program
#include<iostream>
#include <GL/glut.h>
#include <cstring>
void display() {
glClear(GL_COLOR_BUFFER_BIT);
char message[] = "Hello, world!";
glRasterPos2d(0, 0);
for (int i = 0; i < sizeof(message) / sizeof(message[0]); i++)
{
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, message[i]);
}
}
int main(int argc, char *argv[]) {
glutInit(&argc, argv);
glutInitWindowSize(500, 500);
glutCreateWindow("OpenGL hello program");
glutDisplayFunc(display);
glutMainLoop();
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:警告:有符号和无符号整数表达式之间的比较(第9行). 我还尝试编写一个新代码然后看看导致问题的原因:
#include<iostream>
#include <cstring>
void display1() {
char message[] = "Hello, world!";
for (int i = 0; i < sizeof(message) / sizeof(message[0]); i++)
std::cout<<message[i];
} …Run Code Online (Sandbox Code Playgroud) 我写了以下几行代码:
int pos = 0, last_pos = 0;
while ((pos = str.find_first_of(" ", last_pos)) != string::npos)
Run Code Online (Sandbox Code Playgroud)
但是编译器显示错误:
error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
while ((pos = str.find_first_of(" ", last_pos)) != string::npos)
^
Run Code Online (Sandbox Code Playgroud)
我该如何解决?这是我第一次看到这个
for ( i= 0; i < sizeof(r)/sizeof(r[0]); ++i ){
r[i]= 0;
}
Run Code Online (Sandbox Code Playgroud)
所以这是for循环我遇到了麻烦,我怎么能重写它所以我没有得到警告:
comparison between signed and unsigned integer expressions [-Wsign-compare]
Run Code Online (Sandbox Code Playgroud)