在一些代码,我继承,我看到经常使用size_t与std命名空间限定词.例如:
std::size_t n = sizeof( long );
Run Code Online (Sandbox Code Playgroud)
当然,它编译并运行良好.但对我来说这似乎是不好的做法(也许是从C继承下来的?).
是不是真的size_t是内置到C++中,因此在全局命名空间中?是否需要size_t在C++中使用头文件?
提出这个问题的另一种方法是,是否需要在所有C++编译器上编译以下程序(没有包含)?
size_t foo()
{
return sizeof( long );
}
Run Code Online (Sandbox Code Playgroud) 我想将我的二维布尔数组中的所有元素初始化为false。
size_t n, m;
cin >> n >> m;
bool arr[n][m] = {false};
for(size_t i = 0; i < n; i++){
for(size_t j = 0; j < m; j++){
cout << arr[i][j] << " ";
}
cout << endl;
}
Run Code Online (Sandbox Code Playgroud)
但是我对输出感到非常困惑。例如,如果n = 5且m = 5,则我具有以下内容:
0 27 64 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
那么,代码有什么问题呢?
任务:编写一个程序,读取一行文本并输出每个字母的出现次数.
#include <iostream>
#include <string>
#include <cstring>
#define N 100
using namespace std;
int main()
{
char alphabet[27] = "abcdefghijklmnopqrstuvwxyz";
int alphacount[26];
char lot[N], *p1;
int txtlen, *p2;
cout << " Enter a line of text: " << endl;
cin.getline(lot, 99);
txtlen = strlen(lot);
p1 = lot;
p2 = &txtlen;
for (int x = 0; x < *p2; x++)
{
for (int y = 0; y < 26; y++)
{
if (*p1 == alphabet[y])
{
alphacount[y]++;
p1++;
}
}
} …Run Code Online (Sandbox Code Playgroud)