C++ 为什么是';这个向量不给我和数组一样的输出吗?
如果向量只是一个功能更强的数组,那么它是否会像数组一样将基元素的地址存储在它的名称中?为什么我没有获取存储在指定索引位置的元素的值,而是获取完整的字符串作为输出? 这是我的密码C++ 为什么是';这个向量不给我和数组一样的输出吗?,c++,vector,C++,Vector,如果向量只是一个功能更强的数组,那么它是否会像数组一样将基元素的地址存储在它的名称中?为什么我没有获取存储在指定索引位置的元素的值,而是获取完整的字符串作为输出? 这是我的密码 #include <iostream> #include <vector> using namespace std; int main() { vector<string> v(20,"hello"); char a[]={"hello"}; cout&
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<string> v(20,"hello");
char a[]={"hello"};
cout<<v[1]<<"\n"; //this gives hello as the output
cout<<a[1]; //this gives e
return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
向量v(20,“你好”);
字符a[]={“你好”};
cout为什么我没有获取存储在指定索引位置的元素的值,而是获取作为输出的完整字符串
因为在向量中使用字符串类型而不是char
改变
vector<string> v(20,"hello");
向量v(20,“你好”);
到
向量v={h',e',l',l',o','\0'};
您将得到“e”。为什么我没有得到存储在指定索引位置的元素的值,而是得到作为输出的完整字符串
因为在向量中使用字符串类型而不是char
改变
vector<string> v(20,"hello");
向量v(20,“你好”);
到
向量v={h',e',l',l',o','\0'};
你会得到'e'。v[1]是[1]成员,如果是字符串向量,你已经将该成员初始化为“hello”。a[1]是
a
的[1]成员,你已经将其初始化为'h','e','l','l','o',0
v
的每个成员都是一个完整的字符串。a
的每个成员都是单个字符。v[1]是[1]成员,如果是字符串向量,您已将该成员初始化为“hello”。a[1]是a
的[1]成员,您已将其初始化为'h'、'e'、'l'、'l'、'o',0
v
的每个成员都是一个完整的字符串。a
的每个成员都是单个字符。std::vector
是字符串的容器。因此,第一个元素是整个字符串,第二个元素是另一个整个字符串,依此类推
是字符的容器。因此,第一个元素是字符,第二个元素是另一个字符,依此类推。std::vector
是字符串的容器。因此,第一个元素是整个字符串,第二个元素是另一个整个字符串,依此类推。而字符[]
是一个包含字符的容器。因此,第一个元素是字符,第二个元素是另一个字符,依此类推。您在这里定义了完全不同的类型
vector<string> v(20,"hello");
这将创建一个包含“hello”的(C样式)字符串。数组的每个元素都是一个字符
当然,当你要求打印一个字符串时,整个字符串都会被打印出来。同样,当你要求打印一个字符时,一个字符也会被打印出来。你在这里定义了完全不同的类型
vector<string> v(20,"hello");
这将创建一个包含“hello”的(C样式)字符串。数组的每个元素都是一个字符
当然,当你要求打印一个字符串时,整个字符串都会被打印出来。同样,当你要求打印一个字符时,一个字符也会被打印出来。astd::vector
甚至与char[]
不一样,因为它将是一个字符串的集合,而不是一个字符串(v
的每个元素都是std::string
,a
的每个元素都是char
)。vector v(20,“hello”);
您正在创建20个std::string并打印第二个。char a[]={“hello”}您正在创建一个字符数组并打印第二个字符。std::vector
甚至与char[]
不同,因为它将是字符串的集合,而不是单个字符串(v
的每个元素都是std::string
,而a
的每个元素都是char
).vector v(20,“hello”);
您正在创建20个std::字符串并打印第二个字符串。char a[]={“hello”};
您正在创建一个字符数组并打印第二个字符。