判断vector对象的定义是否正确,并描述其执行结果 vector<vector<int>> ivec; vector<string> svec = ivec; vector<string> svec(10,“null”);
时间: 2024-06-12 15:09:18 浏览: 113
这里有三个vector对象的定义和描述结果:
1. `vector<vector<int>> ivec;` 这是正确的vector对象的定义。它创建了一个名为`ivec`的向量,其中每个元素也是一个向量,元素的类型是int。执行结果是创建了一个空的二维向量。
2. `vector<string> svec = ivec;` 这个定义是错误的,因为不能将一个二维向量赋值给一个一维向量。执行此代码会导致编译错误。
3. `vector<string> svec(10,"null");` 这是正确的vector对象的定义。它创建了一个名为`svec`的向量,其中包含10个元素,每个元素都是字符串类型,并且初始值都为"null"。执行结果是创建了一个包含10个字符串元素的向量,每个元素初始化为"null"。
相关问题
vector<vector<int>> ivec;
vector<vector<int>> ivec; 是一个二维向量,它可以存储整数类型的数据。每一个内部的向量都代表一个一维向量。你可以使用二维向量来表示矩阵、图等数据结构。
相关问题:
1. 如何向二维向量中添加元素?
2. 如何访问二维向量中的元素?
3. 如何获取二维向量的行数和列数?
4.
while (true) { // 获取一条鼠标或按键消息 m = getmessage(EX_MOUSE | EX_KEY); switch (m.message) { case WM_MOUSEMOVE: break; case WM_LBUTTONDOWN: { if (750 <= m.x && m.x <= 850 && 50 <= m.y && m.y <= 100) { // outtextxy(20, 10, "reset"); chess.clear(); for_(i, 0, 14) { chess.push_back(ivec(15, 0)); } drawboard(); gameover = false; num = 1; break; } //750, 150, 850, 200 if (750 <= m.x && m.x <= 850 && 150 <= m.y && m.y <= 200) { // char s[20]; // sprintf(s, "%d", chess[0].size()); // outtextxy(20, 10, s); ofstream out("chessdata.dat", ios::trunc | ios::binary); for_(i, 0, 14) { for_(j, 0, 14) { out.write((char*)&chess(i, j), 4); } } for_(i, 0, 14) { for_(j, 0, 14) { out.write((char*)&nums(i, j), 4); } } break; } //750, 150, 850, 200 if (750 <= m.x && m.x <= 850 && 250 <= m.y && m.y <= 300) { // char s[20]; // sprintf(s, "%d", chess[0].size()); // outtextxy(20, 10, "read"); ifstream in("chessdata.dat", ios::in | ios::binary); for_(i, 0, 14) { for_(j, 0, 14) { in.read((char*)&chess(i, j), 4); } } for_(i, 0, 14) { for_(j, 0, 14) { in.read((char*)&nums(i, j), 4); } } // char s[20]; // sprintf(s, "%d", chess[0][0]); // outtextxy(20, 10, s); drawchess(); settextcolor(RED); if (isfive(chess)) { outtextxy(20, 10, "black wins!"); gameover = true; } else if (isfive(chess, 2)) { outtextxy(20, 10, "white wins!"); gameover = true; } break; }
这段代码应该是在一个消息循环中,不断地获取鼠标和按键消息,根据不同的消息类型来执行不同的操作。
其中,如果是鼠标左键按下的消息,会判断鼠标的位置,如果在(750, 50)到(850, 100)的范围内,就会清空棋盘、重新绘制棋盘、重置游戏状态等操作;如果在(750, 150)到(850, 200)的范围内,就会将当前的棋局数据写入文件;如果在(750, 250)到(850, 300)的范围内,就会从文件中读取之前保存的棋局数据,并重新绘制棋盘。在读取完数据后,还会判断是否有五子连珠的情况出现,如果出现就会显示对应的胜利信息,并将游戏状态设置为结束。
这段代码只是一个消息循环中的一部分,要理解清楚它的具体作用,还需要看整个程序的代码实现。
阅读全文
相关推荐















