C++动态输入一个Vector<int>或Vector<string>当作输入接口

 在C++中,关于输入一行char数组,我们可以用get()或者getline(),但这两个函数的参数却只能是字符(串)型变量,而不能是整型变量。

那么如果要输入一行(未知具体有多少个变量输入)整型或字符串变量,该如何输入?

今天在做一道笔试OJ题的时候需要ACM模式,自己写输入接口,函数主体什么都写好了,可是它的输入是一个 “857” 和  ["xi an","disco""school"],完全不知道怎么写。

输入接口为 vector<string>
 

// 输入接口为 vector<string>
int main(){ 
	string str;
	vector<string> nums;
	while (getline(cin,str))
	{
        nums.push_back(str);	
		if (str[str.size()] == '\0')
			break;	
	}

	for (auto e : nums)
		cout << e;
	return 0;
}

上面的代码在一次性输入lxr wz 123后最终的输入输出结果是这样的:

或用cin.get()

int main() {
	string s;
	vector<string> str;
	
	while (true)
	{
		cin
### 正确初始化 C++ 中的二维 `vector<int>` 的方法 在 C++ 中,可以使用 `std::vector` 来创建和初始化一个二维向量。如果需要初始化一个包含 26 个元素的二维 `vector<int>`,可以通过以下方式实现: ```cpp #include <vector> #include <iostream> int main() { // 初始化一个包含 26 个 vector<int> 的二维向量,每个 vector<int> 初始为空 std::vector<std::vector<int>> vec2d(26, std::vector<int>()); // 打印每个子向量的大小以验证 for (size_t i = 0; i < vec2d.size(); ++i) { std::cout << "Size of vec2d[" << i << "]: " << vec2d[i].size() << std::endl; } return 0; } ``` 上述代码中,`std::vector<std::vector<int>> vec2d(26, std::vector<int>())` 表示创建一个包含 26 个 `std::vector<int>` 的二维向量[^1]。每个子向量初始为空。 如果希望每个子向量预先分配固定数量的元素(例如,每个子向量包含 10 个值为 0 的整数),可以这样初始化: ```cpp #include <vector> #include <iostream> int main() { // 初始化一个包含 26 个 vector<int> 的二维向量,每个 vector<int> 包含 10 个值为 0 的元素 std::vector<std::vector<int>> vec2d(26, std::vector<int>(10, 0)); // 打印每个子向量的大小以验证 for (size_t i = 0; i < vec2d.size(); ++i) { std::cout << "Size of vec2d[" << i << "]: " << vec2d[i].size() << std::endl; } return 0; } ``` 在这种情况下,`std::vector<std::vector<int>> vec2d(26, std::vector<int>(10, 0))` 创建了一个包含 26 个子向量的二维向量,每个子向量包含 10 个值为 0 的整数[^1]。 ### 注意事项 - 在初始化时,必须确保所有子向量具有相同的类型和结构。 - 如果尝试将不同类型的向量赋值给另一个向量(如 `vector<string>` 赋值给 `vector<int>`),会导致编译错误[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值